Maven:通过属性复制依赖项



我将我的项目从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创建一个单独的程序集,然后包括或排除每个程序集所需的依赖项。

相关内容

  • 没有找到相关文章

最新更新