Java jenkins插件可以使用与主要jenkins webapp不同的jar版本吗?

Java jenkins插件可以使用与主要jenkins webapp不同的jar版本吗?,java,maven,jenkins,classloader,jenkins-plugins,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插件,其中包含一个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的内容

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


org.jenkins-ci.tools

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