jenkins插件可以使用不同版本的jar而不是主jenkins webapp吗?

时间:2015-10-07 14:28:28

标签: java maven jenkins classloader jenkins-plugins

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

我想要的版本包含在我的.hpi文件中,但在运行时,jenkins / WEB-INF / lib的版本被选中。我猜是因为类加载器我不能强迫它在我的.hpi文件中拾取版本,但是想查看是否有人知道这样做的方法吗?

感谢。

Jenkins and plugin lib dirs

1 个答案:

答案 0 :(得分: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