如何为詹金斯工作动态设置本地maven repo
How to dynamically set the local maven repo for a jenkins job
我正在尝试使用 Jenkins 远程访问创建一个 Jenkins 作业 API[1]。我想要实现的是,我想为作业指定本地 Maven 存储库(而不是使用全局存储库),使用我发送到创建作业 API 的作业配置(config.xml)。我怎样才能做到这一点?我应该添加(或更改)的 xml 属性是什么?
[1] https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
根据 API 是这样的:
curl -X POST -H "Content-Type:application/xml" -d @config.xml "http://JENKINS_HOST/createItem?name=Some_Job_Name"
根据需要手动配置作业,然后访问 URL $JENKINS/job/$JOB/config.xml
— 在那里您将能够看到所需配置需要哪些 XML 标签。
我们可以通过在作业配置中指定 localRepository
元素来为特定作业定义本地 maven 存储库。
默认情况下,jenkins 开箱即用地支持三个选项。
默认存储库(~/.m2/repository)
<localRepository class="hudson.maven.local_repo.DefaultLocalRepositoryLocator"/>
本地执行器
<localRepository class="hudson.maven.local_repo.PerExecutorLocalRepositoryLocator"/>
工作区本地
<localRepository class="hudson.maven.local_repo.PerJobLocalRepositoryLocator"/>
因此,如果您想根据构建参数或构建信息定义自己的本地存储库定位器,您可以扩展 hudson.maven.local_repo.LocalRepositoryLocator
class 并实现自己的逻辑并在 [=14] 下指定=]作业配置中的元素。
例如:
<localRepository class="org.sample.MyOwnLocalRepositoryLocator"/>
我正在尝试使用 Jenkins 远程访问创建一个 Jenkins 作业 API[1]。我想要实现的是,我想为作业指定本地 Maven 存储库(而不是使用全局存储库),使用我发送到创建作业 API 的作业配置(config.xml)。我怎样才能做到这一点?我应该添加(或更改)的 xml 属性是什么?
[1] https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
根据 API 是这样的:
curl -X POST -H "Content-Type:application/xml" -d @config.xml "http://JENKINS_HOST/createItem?name=Some_Job_Name"
根据需要手动配置作业,然后访问 URL $JENKINS/job/$JOB/config.xml
— 在那里您将能够看到所需配置需要哪些 XML 标签。
我们可以通过在作业配置中指定 localRepository
元素来为特定作业定义本地 maven 存储库。
默认情况下,jenkins 开箱即用地支持三个选项。
默认存储库(~/.m2/repository)
<localRepository class="hudson.maven.local_repo.DefaultLocalRepositoryLocator"/>
本地执行器
<localRepository class="hudson.maven.local_repo.PerExecutorLocalRepositoryLocator"/>
工作区本地
<localRepository class="hudson.maven.local_repo.PerJobLocalRepositoryLocator"/>
因此,如果您想根据构建参数或构建信息定义自己的本地存储库定位器,您可以扩展 hudson.maven.local_repo.LocalRepositoryLocator
class 并实现自己的逻辑并在 [=14] 下指定=]作业配置中的元素。
例如:
<localRepository class="org.sample.MyOwnLocalRepositoryLocator"/>