如何为 jenkins 作业动态设置本地 maven 存储库



我正在尝试使用 Jenkins 远程访问 API 创建一个 jenkins 作业[1]。我想要实现的是,我想使用发送到创建作业 API 的作业配置(config.xml)为作业指定本地 maven 存储库(而不是使用全局存储库)。我怎样才能做到这一点?我应该添加(或更改)哪些 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 开箱即用地支持三个选项。

  1. 默认存储库(~/.m2/存储库)

    <localRepository class="hudson.maven.local_repo.DefaultLocalRepositoryLocator"/>
    
  2. 遗嘱执行人的本地

    <localRepository class="hudson.maven.local_repo.PerExecutorLocalRepositoryLocator"/>
    
  3. 工作区的本地

    <localRepository class="hudson.maven.local_repo.PerJobLocalRepositoryLocator"/>
    

因此,如果要根据构建参数或构建信息定义自己的本地存储库定位器,则可以扩展hudson.maven.local_repo.LocalRepositoryLocator类并实现自己的逻辑,并在作业配置localRepository元素下指定它。前任:

<localRepository class="org.sample.MyOwnLocalRepositoryLocator"/>

最新更新