在受限环境中重新编译第三方Java代码

在受限环境中重新编译第三方Java代码,java,maven,jenkins,continuous-integration,artifactory,Java,Maven,Jenkins,Continuous Integration,Artifactory,我拥有对Jenkins的用户级访问权限,由于访问限制,无法更改Maven的settings.xml。当我想要部署mvn时,它希望pom.xml中有一个distributionManagement子句。然而,代码来自互联网,我不希望每次都更改pom.xml。詹金斯有什么我能做的吗?我正在考虑使用Artifactory插件,因为这是我想要部署的地方。如果不能使用Maven部署目标,Artifactory插件似乎是一个很好的解决方案 通过一个简单的mvn clean install命令+Artifac

我拥有对Jenkins的用户级访问权限,由于访问限制,无法更改Maven的settings.xml。当我想要部署mvn时,它希望pom.xml中有一个distributionManagement子句。然而,代码来自互联网,我不希望每次都更改pom.xml。詹金斯有什么我能做的吗?我正在考虑使用Artifactory插件,因为这是我想要部署的地方。

如果不能使用Maven部署目标,Artifactory插件似乎是一个很好的解决方案

通过一个简单的mvn clean install命令+Artifactory插件,您将能够在您想要的地方部署(如果Jenkins服务器具有相关的读/写访问权限):


我建议使用Jenkins提供的mvn deploy,但使用-DaltDeploymentRepository=id::layout::url系统属性指定要部署到的存储库

格式:id::layout::url

id是用于从settings.xml获取凭据的存储库id(即,中心、快照)

布局应该是“默认的”,除非您仍然使用Maven1(在这种情况下,它应该是“遗留的”)

url是要部署到的存储库的url


这在Maven文档中有详细说明:

配置文件提供程序是一个有用的插件。它提供了一种管理构建的配置文件的机制,并特别支持特定于项目的Maven设置文件。请参阅:另一个选项是在您的项目工作区中有一个设置文件并按如下方式运行maven“mvn-s localsettings.xml…”谢谢!我已经使用Maven和Jenkins多年了,Maven是为了部署到Artifactory这样的存储库,Hudson/Jenkins是为了运行Maven,所以我相信利用这些工具的简单干净的实现。此外,由于Maven命令可以像在Jenkins上运行一样在其他地方运行,因此如果坚持将Maven与Jenkins一起尽可能多地使用,则可以更容易地再现和调试出现的问题。