0

我有一个名为 MyWebProject 的 web 项目,它也有子模块并打包为 POM,我还有另外两个简单的 java 项目,称为 SimpleJavaProject1 和 SimpleJavaProject2,它们打包为 JAR。

我在 web peoject 中对两者都有依赖。所以我必须使用 Maven Profile 和 Overlays 这样的方式,当我将使用配置文件 JavaProject1 构建和打包我的 Web 项目时,Web 项目在其战争中包含 SimpleJavaProject1,当我说 JavaProject2 时,它应该包含 SimpleJavaProject2。并且它应该只对指定的 java 项目使用 Overlays。

我可以在个人资料中使用叠加层吗?

请提出一些想法,如果有的话......

4

2 回答 2

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 回答
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>

我在war插件中添加了覆盖如下,

<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 回答