我将我的项目从Maven 1升级到Maven 3.它运行正常,但我还有其他一些问题。 Maven 3没有如下所示的“属性”标签;
<dependency>
<groupId>commons-logging</groupId>
<properties>
<cdstool.bundle>true</cdstool.bundle>
<war.bundle>true</war.bundle>
</properties>
</dependency>
但是在发布时我需要知道需要哪个依赖项,所以我可以将它们复制到我的发布文件夹中的相关文件夹中。
这是从以前的Maven 1版本创建发行版的Ant目标,它通过检查它们的“属性”将某些依赖项复制到某些文件夹。下面是一个示例,但是有一个以上的目标目录,jars需要是复制
<j:forEach var="lib" items="${pom.artifacts}">
<j:set var="dep" value="${lib.dependency}"/>
<j:if test="${dep.getProperty('cdstool.bundle')=='true'}">
<ant:copy failonerror="true" todir="${maven.build.dir}/cdstool">
</ant:copy>
</j:if>
</j:forEach>
如何在不使用Ant的情况下在Current Maven 3项目中执行此操作?
首先我需要知道依赖属性,所以我知道什么时候复制到哪里,这在我当前的pom依赖项中缺失,因为没有属性标记。然后我需要使用Maven Assembly插件将它们复制到我想要的文件夹中。
答案 0 :(得分:0)
我建议你为每个bundle创建一个单独的程序集,然后在每个程序集中包含或排除所需的依赖项。