我将我的项目从Maven 1升级到Maven 3。它工作得很好,但我有一些其他的问题。Maven 3没有像下面这样的"properties"标签;
<dependency>
<groupId>commons-logging</groupId>
<properties>
<cdstool.bundle>true</cdstool.bundle>
<war.bundle>true</war.bundle>
</properties>
</dependency>
但是在发布时,我需要知道哪个依赖项需要用于什么,所以我可以将它们复制到我的发布文件夹中的相关文件夹中。
这是Ant的目标,从以前的Maven 1版本创建一个版本,它通过检查它们的"属性"将某些依赖复制到某些文件夹,下面是一个例子,但有多个目标目录需要复制jar
<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的情况下在当前的Maven 3项目中做到这一点?
首先,我需要知道依赖属性,这样我就知道我要复制到哪里,这在我当前的pom依赖中是缺失的,因为没有属性标签。然后我需要使用Maven Assembly插件将它们复制到我想要的文件夹。
我建议您为每个bundle创建一个单独的程序集,然后包括或排除每个程序集所需的依赖项。