2

プロファイルに基づいてディレクトリとそのコンテンツをフィルタリングしたい。ここに私のpom.xmlがあります:

<build>
    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            <targetPath>properties</targetPath>
        </resource>
    </resources>
    <filters>
        <filter>src/main/resources/${env}/ucm.properties</filter>
    </filters>
</build>

<profiles>
    <profile>
        <id>int</id>
        <properties>
            <env>int</env>
        </properties>
    </profile>
    <profile>
        <id>uat</id>
        <properties>
            <env>uat</env>
        </properties>
    </profile>
    <profile>
        <id>stag</id>
        <properties>
            <env>stag</env>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>
</profiles>

そして、これは私のプロジェクト構造です:

ここに画像の説明を入力

しかし、jar をビルドするときに、その中のすべてのフォルダー (int、uat、stag、prod) をコピーしています。

どうすれば問題を解決できますか?

4

1 に答える 1

1

リソース宣言にセクションを追加する必要があります。そのように:

    ...   
    <resource>
        <directory>${basedir}/src/main/resources</directory>
        <filtering>true</filtering>
        <targetPath>properties</targetPath>
        <includes>
          <include>${env}/*</include> <!-- including only the associated profile dir -->
          <include>env.properties</include>
        </includes>
    </resource>
    ...

${env}プロパティがそこで機能するかどうかはわかりません。そうでない場合は機能する可能性があり${project.activeProfiles[0].id}ます

詳細については、 http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.htmlを参照してください。

于 2013-10-10T12:34:09.607 に答える