1

私はこのソリューション How to read an external properties file in Mavenを試してみまし たが、うまくいきませんでした。

プロパティファイル(pom.xmlと同じ場所にあります)から絶対パス(/home/tomcat/lib)を読み取り、pom.xmlに値を設定したいと思います

project.properties ファイルには以下が含まれます。

myTomCat.lib.location=/home/tomcat/lib

pom.xml 構成には以下が含まれます。

<properties>
    <envTomcatLib>${myTomCat.lib.location}</envTomcatLib>
</properties>

<dependencies>
<dependency>
           <artifactId>MyJar</artifactId>
       <groupId>MyJar</groupId>
       <scope>system</scope>
       <version>1.0</version>
       <systemPath>/${envTomcatLib}/MyJar.jar</systemPath>
 </dependency>
</dependencies>

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-1</version>
    <executions>
      <execution>
        <phase>initialize</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>${basedir}/project.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
  </plugin>  

問題は、Eclipse のコンパイル時または「mvn install」の実行時に、プレースホルダー ${envTomcatLib}/MyJar.jar が /home/tomcat/lib/MyJar.jar に解決されず、${envTomcatLib}/MyJar のままになることです。 .jar.

誰か助けてくれませんか?

ありがとう

4

2 に答える 2

1

セクションの値は<properties>、POM が最初にロードされるときに割り当てられます。はproperties-maven-plugin、プロパティがロードされた時点以降のプラグインの実行にのみ影響します。私が提供した同様の回答の詳細。

ところで、Maven リファレンス ブックには、システム スコープについて次のように書かれています。

于 2012-11-02T14:20:20.000 に答える
0

"/"前に削除するか、代わりに/${envTomcatLib}/MyJar.jar プロパティ値を指定する必要がある場合があります。あなたの場所を解決できない理由かもしれません。home/tomcat/lib/home/tomcat/lib

于 2013-01-03T09:01:02.277 に答える