0

サブモジュールも持ち、POM としてパッケージ化されている MyWebProject という Web プロジェクトが 1 つあり、JAR としてパッケージ化されている SimpleJavaProject1 と SimpleJavaProject2 という他の 2 つの単純な Java プロジェクトがあります。

私は web peoject で両方に依存しています。そのため、Maven プロファイルとオーバーレイをそのような方法で使用する必要があります。プロファイル JavaProject1 を使用して Web プロジェクトをビルドおよびパッケージ化する場合、Web プロジェクトにはその戦争に SimpleJavaProject1 が含まれ、JavaProject2 と言った場合は SimpleJavaProject2 を含める必要があります。また、指定された Java プロジェクトに対してのみオーバーレイを使用する必要があります。

プロフィールでオーバーレイを使用できますか?

何かいい案があれば教えてください...

4

2 に答える 2

1

わかりました... @Duncanの回答を参照して、私がフォローしようとしたところ、うまくいきました。:-)

以下は私のプロフィールです。

<profile>
    <id>JavaProject1</id>
    <properties>
        <roject.groupId>mygroupId</project.groupId>
        <roject.artifactId>myartifactId</project.artifactId>
        <roject.version>${myversion}</project.version>
    </properties>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>

<profile>
    <id>JavaProject2</id>
    <properties>
        <roject.groupId>mygroupId</project.groupId>
        <roject.artifactId>myartifactId</project.artifactId>
        <roject.version>${myversion}</project.version>
    </properties>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>

そして、次のように戦争プラグインにオーバーレイを追加しました。

<overlays>
    <overlay>
        <groupId>${project.groupId}</groupId>
        <artifactId>${project.artifactId}</artifactId>
        <type>jar</type>
        <targetPath>WEB-INF/classes</targetPath>
    </overlay>
</overlays>

それはうまくいきました。:-)

于 2014-06-25T06:02:14.253 に答える
1

私はオーバーレイに慣れていませんが、うまくいけば、このアプローチはオーバーレイにも機能します。

通常、プロファイルに基づいて親POMでプロパティを定義することにより、この種の問題を解決します。

<profiles>
    <profile>
        <id>JavaProject1</id>
        <properties>
          <java.project>SimpleJavaProject1</java.project>
          <java.project.version>1.1</java.project.version>
        </properties>
    </profile>
    <profile>
        <id>JavaProject2</id>
        <properties>
          <java.project>SimpleJavaProject2</java.project>
          <java.project.version>1.2</java.project.version>
        </properties>
    </profile>
</profiles>

次に、依存関係を定義するときにこのプロパティを使用します (できればオーバーレイも):

<dependency>
    <groupId>com.foo</groupId>
    <artifactId>${java.project}</artifactId>
    <version>${java.project.version}</version>
</dependency>
于 2014-06-24T11:36:45.610 に答える