2016-01-05 8 views
5

でプロファイルに設定された値にアクセスする方法pom.xmlに異なる値で設定された異なるプロファイルを持つmavenプロジェクトがあります。しかし、私はJavaコードを介してプロファイルに設定された値にアクセスする方法を知らない。私のpom.xml例 -Javaコード

の場合 :

<profile> 
     <id>scaler</id> 
     <properties> 
      <user>xxxxxxx</user> 
      <secret>yyyyyyyy</secret> 
      <proxyHost>172.19.17.13</proxyHost> 
      <proxyPort>9444</proxyPort> 
      <environment>SCALER</environment> 
     </properties> 
    </profile> 

Javaは、上記のJavaコードで

String serviceurl = "http://"<proxyhost>":<proxyPort>/"; 

をコード - 、私は9444として172.19.17.13 &ポートとしてプロキシホストを使用したいですpom.xmlで定義されていますが、pomからこれらの値にアクセスする方法は? 私はあなたの助けを感謝します

+2

M avenプロパティは実際には実行時変数ではなく、コンパイル時の変数に使用されます。私は、あなたの場合、プロパティファイルを使用する方が良い解決策になると信じています。 –

+0

あなたのソースはソース管理にありますか?ソース管理で資格情報(ユーザー/秘密)を使用しますか? – Andreas

+1

[1つのアプローチはこの質問に記載されています](http://stackoverflow.com/q/2469922/521799) –

答えて

0

私はそれがmavenのプロフィールに依存しているかどうかはわかりません。 hereのようにproperties-maven-plugin(または他の解決策)を使用することができます。あなたのプロパティをファイルに書き込んで、それをJavaコードで使用するだけです。

4

mavenフィルタリング機能を使用する必要があります。

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

だけのsrc /いくつかのプレースホルダをメイン/リソースでプロパティファイルを追加します。その後、myvalue

は必ずあなたのpom.xmlにプロパティとして定義されている必要があり

key=${myvalue} 

をリソースのフィルタを有効にする:

<resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filtering> 
</resource> 
+0

情報をいただきありがとうございますが、コードがこれらの値にどのようにアクセスするのですか?いくつかの例を挙げてもらえますか? –

+1

ここに例がありますhttp://stackoverflow.com/questions/1318347/how-to-use-java-property-files –