【问题标题】:Can a jenkins plugin use a different version of a jar than the main jenkins webapp?jenkins 插件可以使用与主要 jenkins webapp 不同版本的 jar 吗?
【发布时间】:2015-10-07 14:28:28
【问题描述】:

我正在开发一个 Jenkins 插件并包含一个 jar 作为依赖项 - 但该 jar 已包含在 Jenkins 主 webapp 的 WEB-INF/lib 目录中。这很好,除了我的插件需要版本 X 并且 Jenkins 包含版本 Y,并且它们之间的 api 发生了变化,所以我不能使用旧的,而 Jenkins 也不能使用新的。

我想要的版本包含在我的 .hpi 文件中,但在运行时会获取来自 jenkins/WEB-INF/lib 的版本。我猜由于类加载器,我无法强制它获取我的 .hpi 文件中的版本,但想检查一下是否有人知道这样做的方法?

谢谢。

【问题讨论】:

    标签: java maven jenkins classloader jenkins-plugins


    【解决方案1】:

    默认情况下,Jenkins 从 WEB-INF/lib 加载每个 jar,以及核心的类和库之后的 WEB-INF/classes 的内容。

    如果您想在这些之前加载自己的库(例如,您想要更新版本的速度或其他库),您可以通过在 中告诉 hpi 插件来配置您的插件以使用不同的类加载器策略pom.xml:

    <build>
      <plugins>
        <plugin>
          <groupId>org.jenkins-ci.tools</groupId>
          <artifactId>maven-hpi-plugin</artifactId>
          <configuration>
            <pluginFirstClassLoader>true</pluginFirstClassLoader>
          </configuration>
        </plugin>
      </plugins>
    </build>
    

    更多详情请见docs

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 2011-10-25
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多