Maven:通过属性复制依赖项

时间:2014-05-05 13:22:37

标签: java maven ant maven-assembly-plugin

我将我的项目从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插件将它们复制到我想要的文件夹中。

1 个答案:

答案 0 :(得分:0)

我建议你为每个bundle创建一个单独的程序集,然后在每个程序集中包含或排除所需的依赖项。