execを呼び出すときにSystemPropertiesを渡す方法:MavenでJavaプラグインがありますか?
-
02-10-2019 - |
質問
Exec:Javaプラグインを使用して、コマンドラインからメインクラスを呼び出します。コマンドラインからの引数を使用して渡すことができます -Dexec.args="arg0 arg1 arg2"
, 、システムプロパティを渡す方法がわかりません。 -dexec.systemproperties = "key = value" `を試しましたが、効果はありませんでした。
pom.xml
このように見えます:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>ibis.structure.Structure</mainClass>
</configuration>
</plugin>
解決
設定する方法はありません <systemProperties>
パラメーター コマンドラインで。
しかし、それ以来 exec:java
フォークされていません、システムプロパティをMavenに渡すだけで、それはによって拾われます exec:java
同じように。
mvn -Dkey=value exec:java -Dexec.mainClass=com.yourcompany.yourclass \
-Dexec.args="arg1 arg2 arg3"
他のヒント
それが適切に機能するために私のためにフォローしてみてください
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>ibis.structure.Structure</mainClass>
<systemProperties>
<systemProperty>
<key>someKey</key>
<value>someValue</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
私は同様の問題に遭遇したばかりで、この質問に出くわすかもしれない他の人のために完全な答えを書きたいと思いました。
問題はpom.xmlに関するものではなく、コマンドラインに関するものですが、pom.xmlで同じことを行う方法を述べていないので、ここで
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>myPackage.MyMain</mainClass>
<systemProperties>
<property>
<key>myKey</key>
<value>myValue</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
コマンドラインの場合 - 私は思う Sean Patrick Floyd's
答えは良いです - ただし、pom.xmlですでに定義されているものがある場合、それはそれをオーバーライドします。
だから走っている
mvn exec:java -DmyKey=myValue
また、あなたのために働くべきです。
また、次のことに注意する必要があります Exec Pluginのドキュメント 以下を述べています
A list of system properties to be passed.
Note: as the execution is not forked, some system properties required
by the JVM cannot be passed here.
Use MAVEN_OPTS or the exec:exec instead. See the user guide for more information.
したがって、このようなこともできます
export MAVEN_OPTS=-DmyKey=myValue
mvn exec:java
そして、それは同じように機能するはずです。
所属していません StackOverflow