【问题标题】:Remove maven version labels with ant用 ant 删除 maven 版本标签
【发布时间】:2011-12-28 22:33:13
【问题描述】:

在我的 ant 构建中,我使用 maven-ant-tasks 为我的项目提取依赖项。构建相对复杂,并且在不同的地方移动/操作不同的工件。为了让我的生活更轻松,我想从我的 ant 脚本中的依赖项中删除 maven 版本标签。 maven-ant 文档说我们可以使用 dependencies 任务的 versionsId 属性来完成这个,但我不知道如何在 ant 中做到这一点。

我构建的相关部分是

 <artifact:pom id="mypom" file="pom.xml"/>
 <artifact:dependencies pathId="dep.classpath" filesetId="dep.fileset" pomRefId="mypom" useScope="compile" settingsFile="${maven.home}\conf\settings.xml" versionsId="dep.versions"/>

 <copy todir="${lib.dir}" flatten="true" overwrite="true">
    <fileset refid="${dep.fileset}"/>
 </copy>

在此调用之后,dep.versions 变量保存了一个以分号分隔的所有版本标签列表。但是,我不确定如何以一种很好/干净的方式删除标签。

谢谢

【问题讨论】:

    标签: java ant maven build maven-ant-tasks


    【解决方案1】:

    好的,伙计们,这就是我解决这个问题的方法

    Maven 有一个自定义映射器,它与 maven-ant-tasks 一起分发,它将删除版本标签。您可以从依赖项标签中传入 versionIds 变量。

    <artifact:pom id="mypom" file="pom.xml"/>
    <artifact:dependencies pathId="dep.classpath" filesetId="dep.fileset" pomRefId="mypom" useScope="compile" settingsFile="${maven.home}\conf\settings.xml" versionsId="dep.versions"/>
    
    <copy todir="${lib.dir}" flatten="true" overwrite="true">
      <fileset refid="${dep.fileset}"/>
      <mapper classname="org.apache.maven.artifact.ant.VersionMapper" from="${dep.versions}" to="flatten" />
    </copy>
    

    如果您没有在 ANT_HOME/lib 中安装 maven-ant-tasks,您还必须在映射器上定义类路径。

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      相关资源
      最近更新 更多