pom.xml複数の環境および変数を使用して取得
5169 ワード
一般的に、開発、テスト、生産の環境はすべて異なって、繰り返し配置ファイルを修正するのは比較的に面倒で、また間違いやすくて、プロジェクトはpomにあります.xmlファイルではprofilesプロパティが使用され、複数の環境が構成されており、2つの比較的重要な問題があります.以下はpomである.xmlファイルの関連コード の導入時に環境をどのように選択しますか? mavenパッケージを使用する場合、ideaで対応する環境を選択すれば になります.コードでこれらの変数を使用する必要がある場合、どのように取得しますか? 実は多くの方法があって、私は1種の比較的に怠ける方法を提供して、Springプロファイルの中でBeanを定義して、それから関連するクラスを創立して、このようにspringフレームワークは自動的にこのクラスに注入して、コードは以下の ですセキュリティの観点から、オンライン環境のいくつかのパラメータはpomファイルに直接書くのではなく、配置時にdockerで置き換えられます. テスト環境は、導入時にpomファイルの下の生産環境でもあり、置き換え時に使用されるテスト環境パラメータだけです. このような利点は、ラインアップの安全をさらに確保することであり、これまで生産環境パラメータとテスト環境パラメータが一致しなかった場合がある .
<profiles>
<profile>
<id>devid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties> <jdbc.url>jdbc:mysql://127.0.0.1:3306/testjdbc.url>
<jdbc.username>testjdbc.username>
<jdbc.password>testjdbc.password>
<redis.nodes>127.0.0.1:9000redis.nodes>
properties>
profile>
<profile>
<id>said>
<activation>
<activeByDefault>falseactiveByDefault>
activation>
<properties>
<jdbc.url>#{jdbc.url}jdbc.url>
<jdbc.username>#{jdbc.username}jdbc.username>
<jdbc.password>#{jdbc.password}jdbc.password>
<redis.nodes>#{redis.nodes}redis.nodes>
properties>
profile>
profiles>
id="Variables" class="com.util.Variables">
<property name="redis_nodes" value="${redis.nodes}"/>
public class Variables {
static String redis_nodes;
public static String getRedis_nodes() {
return redis_nodes;
}
public void setRedis_nodes(String redis_nodes) {
this.redis_nodes = redis_nodes;
}
}