11

こんにちは、私はこのようなことを達成しようとしています:

親ポンで、私は持っています

<profile>
  <activation>
    <property>
      <name>Compile</name>
      <value>${project.artifactId}</value>
    ...

親pomの下で実行mvn -DCompile=mod1 installすると、プロファイル設定がモジュール1にのみ適用され、他の設定には適用されないようにします。

同様に、私が持っている場合

<profile>
  <activation>
    <property>
      <name>Compile</name>
      <value>${project.packaging}</value>
    ...

次にmvn -DCompile=war install、親 pom の下で実行すると、プロファイル設定は war としてパックされるものにのみ適用されますが、jar や pom には適用されません。

試してみましたが、期待どおりに動作しませんでした。何か見逃しましたか?助けてください。

PS私はこの方法にのみ興味があるので、回避策を提案する必要はありません. もしそうなら、理由をつけてそれは不可能だと簡単に答えてください。ありがとうございました

4

3 に答える 3

10

はい、変数などの 1 つまたはさまざまなパラメーターに応じて、プロファイルを有効にすることができenvます。

<project>
    ...
    <profiles>
        <profile>
            <id>development</id>
            <activation>
                <property>
                    <name>!environment.type</name>
                </property>
            </activation>
        </profile>
    </profiles>
</project>

X に応じて異なるパッケージを使用しようとしている場合は、アセンブリ プラグインを使用して、そこで魔法をかけることができます http://maven.apache.org/plugins/maven-assembly-plugin/

アクティベーション プロパティの詳細

于 2013-09-19T08:50:23.380 に答える
2

Maven 3.0 以降、POM のプロファイルは、settings.xml のアクティブなプロファイルのプロパティに基づいてアクティブ化することもできます。

ここにあるサンプルを確認できます:

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

于 2014-02-19T06:48:11.617 に答える