1

ファイルで次のプロパティが宣言されているとしpom.xmlます。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org
    /2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    // ....

    <properties>
        <dev.url>http://dev.mysite.com</dev.url>
        <staging.url>http://staging.mysite.com</staging.url>
        <prod.url>http://prod.mysite.com</prod.url>
    </properties>

</project>

私がやりたいのは、さまざまな実行構成を持ち、設定したフラグに応じて、対応するプロパティを読み取ることです。たとえば、本番用にビルドする場合は実行時にprod.urlプロパティを読み取り、ステージング用にビルドする場合はstaging.urlプロパティを読み取ります。

4

1 に答える 1

3

解決方法は次のとおりです
。アイデアは、すべてのプロパティを個別のリソース ファイルに格納することでした。次に、maven リソース プラグインを使用して、対応するプロパティ ファイルをvalues/environment.xml

プロジェクトのルート ディレクトリに、次のディレクトリ構造を作成します。

environment/dev/environment.xml
environment/prod/environment.xml

次に、リソース ファイルの内容に適切な値を入力します。

/dev/environment.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="url">http://dev.mysite.com</string>
</resources>

/prod/environment.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="url">http://prod.mysite.com</string>
</resources>

pom.xmlこのアクションを実行するフェーズ、コピーするリソース、および出力ディレクトリを指定して、maven リソース プラグインを追加します。

//...
<plugins>
    <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
             <execution>
                <id>copy-string-resources</id>
                <phase>validate</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <resources>
                        <resource>
                            <directory>environment/${environment}/</directory>
                            <includes>
                               <include>environment.xml</include>
                               <filtering>true</filtering>
                            </includes>
                        </resource>
                    </resources>
                    <overwrite>true</overwrite>
                    <outputDirectory>${basedir}/res/values/</outputDirectory>
                </configuration>
      </plugin>
</plugins>

この時点から、2 つの実行構成を作成できます。

mvn validate -Denvironment=dev
mvn validate -Denvironment=prod

evironment/${environment}/environment.xmlから適切なリソースをコピーするだけです。values/environment.xml

実行構成に応じて、または${environment}と等しくなります。 devprod

詳細については、このページを参照してください。

于 2013-07-18T15:31:49.717 に答える