2

我有一个项目分为几个子模块(每个子模块都是jar库):

myapp
    myapp-commons
    myapp-client
    myapp-server

我已经配置我pom.xml的以便创建最终存储在目录中的 3 个程序集client.ziporacle.tar.gz和)。我现在想要的是使用 FTP 将其中两个(和)分发到服务器。server.tar.gzmyapp/targetoracle.tar.gzserver.tar.gz

即使我还没有尝试过,我知道我可以很容易地在我的pom.xml. )。有一些 SO 问题(此处此处)为此提供了解决方案。

我的问题是知道是否有更好的方法来做到这一点?我知道 Wagon Maven2 插件,但我没有成功配置它以部署程序集(而不是创建的 JAR)。

4

2 回答 2

2

使用 FTP 部署工件的方法记录在Deployment of artifacts with FTP 中

为了使用 FTP 部署工件,您必须首先在 POM 的 distributionManagement 元素中指定 FTP 服务器的使用,并在构建元素中指定一个扩展,该扩展将拉入使用 FTP 部署所需的 FTP 工件:

  ...

  <!-- Enabling the use of FTP -->
  <distributionManagement>
    <repository>
    <id>ftp-repository</id>
    <url>ftp://repository.mycompany.com/repository</url>
    </repository>
  </distributionManagement>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ftp</artifactId>
         <version>1.0-alpha-6</version>
      </extension>
    </extensions>
  </build>

settings.xml 将包含一个server元素,其中该id元素与id上面 POM 中指定的 FTP 存储库匹配:

<settings>

  ...

  <servers>
    <server>
      <id>ftp-repository</id>
      <username>user</username>
      <password>pass</password>
    </server>

  </servers>

  ...

</settings>

现在,我的理解是您只想将此类设置用于生成的程序集的子集。为此,我将创建一个专用模块来生成要使用 FTP 分发的程序集,并仅使用此模块中的FTP 设置覆盖distributionManagement元素。

于 2009-10-13T12:13:38.473 回答
2

正如您在问题中所说,Ant 方法并不理想,但如果您找不到替代方法,此答案显示了如何使用 antrun 插件通过 FTP 进行部署。这

更新,根据您更新的问题,这部分不太相关,不过我会留下来帮助其他人。

wagon -ftp 插件允许您连接到 FTP 服务器。我没有尝试过,但是您可以将 deploy-plugin 的deploy-file 目标绑定到适当的阶段,以将文件传送到 FTP 服务器(此博客上的一些使用提示)。

于 2009-10-13T10:07:24.593 回答