如果您想在项目之间共享构建的工件,您可以使用另外两个任务: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 |