我有一个项目分为几个子模块(每个都是jar
个库):
myapp
myapp-commons
myapp-client
myapp-server
我已配置pom.xml
以创建最终存储在client.zip
目录中的3个程序集(oracle.tar.gz
,server.tar.gz
和myapp/target
) 。
我现在想要的是使用FTP将其中两个(oracle.tar.gz
和server.tar.gz
)分发到服务器。
即使我还没有尝试,我知道我可以使用我pom.xml
中的一些Ant线很容易地做到这一点,但我真的不喜欢这个选项(我将解决我的问题) Ant只有在没有其他解决方案时)。
有一些SO问题(here或here)为此提供了解决方案。
我的问题是要知道是否有更好的方法可以做到这一点?我知道Wagon Maven2插件但我没有成功配置它以部署程序集(并且不创建的JAR)。
答案 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设置。