如果您想在项目之间共享构建的工件,您可以使用另外两个任务:install用于将它们安装在本地存储库中,以便作为其他脚本中的依赖项进行访问,以及deploy用于将它们部署到您设置为充当的远程位置您组织中的存储库。
注意:安装和部署需要你有一个 Maven 2.0 POM 文件来部署。这些是传递依赖机制有效工作所必需的,并且创建起来非常简单。
以下示例显示了安装和部署任务的基本用法。
...
<artifact:pom id="mypom" file="pom.xml" />
<artifact:install file="target/my-project-1.0.jar">
<pom refid="mypom"/>
</artifact:install>
<artifact:deploy file="target/my-project-1.0.jar">
<remoteRepository url="file:///www/repository"/>
<pom refid="mypom"/>
</artifact:deploy>
...安装和部署任务允许您将多个工件附加到单个部署。例如,可以使用嵌套的附加元素附加源和 javadoc jar。
<artifact:deploy file="target/my-project-1.0.jar">
<remoteRepository url="http://localhost/www/repository"/>
<pom refid="mypom"/>
<attach file="${basedir}/target/my-project-1.0-sources.jar" type="jar" classifier="sources"/>
<attach file="${basedir}/target/my-project-1.0-javadoc.jar" type="jar" classifier="javadoc"/>
<attach file="${basedir}/target/my-project-1.0-junk.zip" type="zip" classifier="junk"/>
</artifact:deploy>要使用本地文件系统以外的协议进行部署,您需要注册提供程序以使其他协议可用。例如:
...
<artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
<artifact:deploy file="target/my-project-1.0.jar">
<remoteRepository url="scp://localhost/www/repository">
<authentication username="${repository.username}" privateKey="${user.home}/.ssh/id_dsa"/>
</remoteRepository>
<pom refid="mypom"/>
</artifact:deploy>
...注意:如果您使用antcall,则在 Ant 调用期间提供程序不可用:如果需要,您必须重新注册它。
Maven Ant 任务包含wagon-file和wagon-http-lightweight提供程序。其他一些可用的提供程序是:
| 协议 | 工件 ID |
| http | wagon-http |
| scp | wagon-ssh |
| scpexe | wagon-ssh-外部 |
| ftp | wagon-ftp |
| 网络视频 | wagon-webdav |