我想知道是否有人看过将Maven依赖项添加到Ant的技术。我认为Ivy本来是为了做到这一点,但后来我意识到它只是一种用于依赖管理的Ant风格的工具。
在我看来,如果有人扩展Ant以便能够引用Maven依赖项(可能只针对开源库),Ant可以捎带Maven的至少一个重要功能而无需重新发明轮子。
有什么想法吗?
答案 0 :(得分:14)
Maven有一组Maven ant任务,可以下载并放在Ant lib目录中。之后,您可以在Ant中声明由POM中的依赖项定义的类路径。这是您可以在build.xml中声明的示例。
<artifact:dependencies filesetId="deps.fileset" type="jar">
<pom file="mypom.xml"/>
</artifact:dependencies>
答案 1 :(得分:1)
ant tasks有一组Mercury,允许您执行依赖关系管理任务,指定配置(例如服务器凭据),修改/更改ant路径并写入存储库。有关详细信息,请参阅this blog。
蚂蚁也有Maven tasks,但它们并不完整。 Maven正在向Mercury(尤其是Maven3)发展,因此使用Mercury任务是有意义的。
以下配置从指定的pom读取依赖项,并使用结果路径填充指定的变量:
<path id="my.compile.path">
<deps>
<dependency name="groupId:artifactId:1.0::pom"
pom="${basedir}/artifactId-1.0.pom"/>
</deps>
</path>
答案 2 :(得分:0)
同意Jherico的回答 - Maven Ant Tasks。请参阅:Why you should use the Maven Ant Tasks instead of Maven or Ivy
它有详细的例子,可以帮助你。
答案 3 :(得分:0)
我使用的是dependency:copy-dependencies
专家目标。这将复制target/dependencies
上的所有依赖项,因此我只需要在一个ant类路径上的该文件夹中包含所有jar。