安装和部署

如果您想在项目之间共享构建的工件,您可以使用另外两个任务: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-filewagon-http-lightweight提供程序。其他一些可用的提供程序是:

协议 工件 ID
http wagon-http
scp wagon-ssh
scpexe wagon-ssh-外部
ftp wagon-ftp
网络视频 wagon-webdav

可以在http://maven.apache.org/wagon/找到其他提供程序和每个提供程序的当前版本