我将项目从Maven 1升级到Maven 3.它工作正常,但我还有其他一些问题。 Maven 3没有像下面这样的“属性”标签;Maven:通过属性复制依赖项
<dependency>
<groupId>commons-logging</groupId>
<properties>
<cdstool.bundle>true</cdstool.bundle>
<war.bundle>true</war.bundle>
</properties>
</dependency>
但要做出释放我需要知道需要什么,其依赖的时候,所以我可以将它们复制到我的release文件夹相关的文件夹。
这是Ant从以前的Maven 1版本创建发行版的目标,它通过检查它们的“属性”将某些依赖项复制到特定的文件夹下面是一个示例,但是有超过1个目标目录,被复制
<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项目中执行此操作?
首先,我需要知道依赖项属性,所以我知道什么TI复制到哪里,哪些在我当前的pom依赖项中缺少,因为没有属性标记。然后我需要使用Maven Assembly插件将它们复制到我想要的文件夹中。
这是一个有趣的问题,我没有直接的答案。我最初的直觉是读入Maven assembly插件;我敢肯定,你应该使用它来控制最终在可部署工件中的什么位置。可能没有简单的过渡要做,你必须找到一种获得相同结果的新方法。 – Gimby
@Gimby dank je wel! – Spring