2016-08-15 16 views
0

私は両方とも同じJVMプロパティを定義していると思っていましたが、明らかにその2つの違いがあり、私は明確な説明を見つけることができません。 Jenkins Mavenを両方ともビルドすると、-Dで設定されたプロパティだけがSystem.getProperties()によってJavaアプリケーションに表示されます。 MAVEN_OPTSもJVMに渡す必要があります。私は何かが欠けているようです。MAVEN_OPTSとmvn -D

説明のためにThx。

答えて

0

MAVEN_OPTSは、Mavenを実行しているJava VMにパラメータを渡すための環境変数です。

このように、ヒープとパーマサイズを設定することができます(MAVEN_OPTS = -XX:MaxPermSize = 256mなど)。

対照的に、-Dパラメータはコマンドラインパラメータです。 Mavenは既にJavaで動作しているため、Java関連のパラメータを制御することはできません。

コマンドラインパラメータとMAVEN_OPTSについては、this pageを参照してください。

これに基づいて、プロパティではなくJVM引数として使用されているため、変数が表示されない理由を推測しています。

おそらくthis answerあなたがそれらを手に入れるのに役立ちますか?

+0

私は既に両方のリンクを通過しました。しかし、ドキュメントによると、MAVEN_OPTS = -Dname = valueがSystem.getProperty( "name")によってアクセス可能なjava -Dname = valueと同じになることが期待されます。 –

+0

説明のためにありがとう。 JenkinsでMAVEN_OPTSを設定し、mvn help:systemを実行すると、System Propertiesのパラメータが表示されます。Javaアプリケーションへの途中で何とか途切れてしまったのだろうかと思います。 –

+0

それを取得しないでください。そのとき私はmvn help:systemを試してみる。アプリケーションを起動しているときにそこにあります。[ott-qa-test-custom-maven_opts] $ /usr/lib64/etnpol-sun-java-1.8.0/bin/java -Dseb.cra.ott.environment = DEV -Dtest = LoginTest -Dseb.caps.browserName = chromeですが、System.getProperties()によってアプリケーション内部からプロパティを取得しようとすると、そこにはありません。 -Dtest = LoginTestだけがmaven-surefire-pluginによって消化されなければならないので、何とか認識されます。そうでなければ、他のテストも実行されます(ただし、プロパティには見られません)。 –

関連する問題