私のpomでは、ファイルを生成するJavaクラスを呼び出すためにexec-maven-pluginを追加しました。このクラスでは、いくつかのパラメータをメイン メソッドに渡す必要があります。そのうちの 1 つは、(プロジェクト外の) 入力ファイルの場所です。これまで、私はこれに相対パスを使用してきましたが、これは正常に機能します。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.laco.projectmaster.util.LanguageGenerator</mainClass>
<arguments>
<argument>../PM-Config/dev/PMLanguage.xls</argument>
<argument>PM4.0</argument>
<argument>${project.build.outputDirectory}/com/laco/projectmaster/props/resources</argument>
<argument>ProjectMaster</argument>
<argument>Created during maven build (POM Version: ${pom.version})</argument>
</arguments>
</configuration>
</plugin>
今、私は hudson を使用して戦争をインストール/パッケージ化し、展開し始めていますが、この相対パスを使用できなくなりました。シンプルに、次のようにmavenを呼び出すときに入力ファイルの場所を渡すだけだと思いました:
mvn clean package -Dlangdir=C:/somedir
次に、pom を次のように変更します。
<argument>${langdir}/PMLanguage.xls</argument>
ただし、このパラメーターはここでは単に無視されます。メインクラスが引数として受け取るパスはnull/PMLanguage.xlsになります。パラメータ自体はmavenで利用できます.antrunプラグインでエコーを使用して成功をテストしました。正しいパスがエコーされました。
maven に渡すパラメータは、pom のどこで参照しても、デフォルトでは使用できませんか?
助けてくれてありがとう、
Stijn