【发布时间】:2013-10-10 08:29:20
【问题描述】:
我正在尝试使用 Maven cargo uberwar 插件。 我想这样做:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.2</version>
<extensions>true</extensions>
<configuration>
<descriptor>src/assemble/merge.xml</descriptor>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>my.first.war</groupId>
<artifactId>MyFirstWar</artifactId>
<type>war</type>
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>my.second.war</groupId>
<artifactId>MySecondWar</artifactId>
<type>war</type>
<exclusions>
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
但它不起作用,安装我的 uberwar 后 javassist 仍在我的库中。
我不想在我的两次战争中排除,我想在我的超级战争中排除。 这个方法不行,还有其他的吗?
感谢您的帮助
【问题讨论】:
-
cargo-maven2-plugin用于功能测试,但不用于重新打包。基于 [docs|(cargo.codehaus.org/Merging+WAR+files) 我假设您错过了更改包装类型<packaging>uberwar</packaging>。在这种情况下,您不能从 deps 中排除 deps,因为 deps 是wars而不仅仅是项目的依赖项。 -
我的 Pom.xml 的打包类型已经 uberwar 了。我通过在我的 pom 上添加一个 antrun 插件来解决我的问题,该插件在我执行 maven 安装后删除了 jar。但也许有更好的方法来做到这一点......
标签: java eclipse maven merge cargo