0

在我的 Ant 脚本中,我使用 Maven Ant 任务将工件安装到本地存储库,如下所示:

<target name="installProject">
  <artifact:pom id="mypom" file="${user.dir}/pom.xml" />
  <artifact:install file="target/myproject-1.0.jar">
    <pom refid="mypom"/>
  </artifact:install>
</target>

我不喜欢这种方法的是我必须明确定义要安装的 Jar 的名称:target/myproject-1.0.jar但是如果该 Jar 的名称发生变化怎么办?我想要一个更通用的方法。我如何让 Maven Ant Tasks 安装 Maven 在命令行上的同一目录中运行时也会安装的所有工件mvn clean install(我不必提供要安装的 Jar)?

(是的,我也可以使用 Maven 调用 Maven <exec executable="mvn" ...>,但我认为为此使用 Maven Ant Tasks 更清洁)

4

1 回答 1

3

没有人知道您的 build.xml 产生了什么,因此您需要将所需的工件名称传递给 ant。它可以通过你的 antrun 元素中应该可用的 project.groupId、project.artifactId、project.version 属性来完成。然后在你 build.xml 工作之后。您可以使用 attachartifact ant 任务将您的工件附加到 maven。IE

<attachartifact file="${project.build.directory}/${project.artifactId}-${project.version}.jar" type="jar"/>

之后,当您执行maven install它时,安装您的 ant 工件。

于 2011-06-08T15:13:56.297 回答