jenkins 插件可以使用与主要 jenkins webapp 不同版本的 jar 吗?
Can a jenkins plugin use a different version of a jar than the main jenkins webapp?
我正在开发一个 Jenkins 插件并包含一个 jar 作为依赖项 - 但该 jar 已经包含在主 Jenkins webapp 的 WEB-INF/lib 目录中。这很好,除非我的插件需要版本 X 而 Jenkins 包含版本 Y,并且 api 在它们之间发生了变化,所以我不能使用旧的,而 Jenkins 不能使用更新的。
我想要的版本包含在我的 .hpi 文件中,但在运行时来自 jenkins/WEB-INF/lib 的版本被选中。我猜是由于类加载器的原因,我无法强制它在我的 .hpi 文件中获取版本,但想检查一下是否有人知道这样做的方法?
谢谢。
默认情况下,Jenkins 从 WEB-INF/lib 加载每个 jar,以及 WEB-INF/classes 的内容类 和核心库。
如果您想在这些之前加载自己的库(例如,您想要更新版本的速度或其他库),您可以通过在 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。
我正在开发一个 Jenkins 插件并包含一个 jar 作为依赖项 - 但该 jar 已经包含在主 Jenkins webapp 的 WEB-INF/lib 目录中。这很好,除非我的插件需要版本 X 而 Jenkins 包含版本 Y,并且 api 在它们之间发生了变化,所以我不能使用旧的,而 Jenkins 不能使用更新的。
我想要的版本包含在我的 .hpi 文件中,但在运行时来自 jenkins/WEB-INF/lib 的版本被选中。我猜是由于类加载器的原因,我无法强制它在我的 .hpi 文件中获取版本,但想检查一下是否有人知道这样做的方法?
谢谢。
默认情况下,Jenkins 从 WEB-INF/lib 加载每个 jar,以及 WEB-INF/classes 的内容类 和核心库。
如果您想在这些之前加载自己的库(例如,您想要更新版本的速度或其他库),您可以通过在 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。