使用Maven 2将程序集部署到FTP服务器

时间:2009-10-13 08:09:51

标签: maven-2 ftp distribution

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

myapp
    myapp-commons
    myapp-client
    myapp-server

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

即使我还没有尝试,我知道我可以使用我pom.xml中的一些Ant线很容易地做到这一点,但我真的不喜欢这个选项(我将解决我的问题) Ant只有在没有其他解决方案时)。 有一些SO问题(herehere)为此提供了解决方案。

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

2 个答案:

答案 0 :(得分:2)

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

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

wagon-ftp plugin允许您连接到FTP服务器。我没试过这个,但是你可以将deploy-plugin的deploy-file goal绑定到适当的阶段,将文件传递给FTP服务器(this blog上的一些使用提示)。 / p>

答案 1 :(得分:2)

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

  

为了使用FTP部署工件   你必须先指定一个使用   FTP服务器中   distributionManagement元素   你的POM以及指定一个   构建元素中的扩展名   这会引入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与上述POM中指定的FTP存储库的id匹配:

<settings>

  ...

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

  </servers>

  ...

</settings>

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

相关问题