【问题标题】:How to use custom java library in jenkins init scripts for installation?如何在 jenkins 初始化脚本中使用自定义 java 库进行安装?
【发布时间】:2021-05-09 18:17:34
【问题描述】:

我正在致力于自动化 Jenkins 安装,我依赖于来自 $JENKINS_HOME/init.groovy.d 的 groovy 脚本。

我想在这些脚本中使用我自己的 java 库。到目前为止,我发现,我可以通过将我的 jar 放入 $JENKINS_HOME/war/WEB-INF/lib 来做到这一点。

问题是我想让整个过程自动化,所以我从空 $JENKINS_HOME 开始。

java -jar jenkins.war

所以如果我在执行命令之前复制我的库,那么命令会删除它。而且在执行命令后复制我的 jar 感觉不对。

也许有合适的方法?也许是对 java 或 jenkins 的争论。我尝试将我的 jar 添加到类路径,但没有帮助/

【问题讨论】:

    标签: java jenkins


    【解决方案1】:

    我在 jenkins 中找到了两种使用自定义 jar 的方法。

    1. 将罐子放在 jenkins.war 中

    Jenkins 会将 jenkins.war/WEB-INF/lib 中的所有 jars 添加到类路径中。因此,如果您想将 custom.jar 的内容添加到类路径中,您可以简单地将其嵌入到 jar 中。为此,您应该将 custom.jar 放到 ./WEB-INF/lib 中,然后执行以下命令。

    jar --update --file jenkins.war WEB-INF/lib/custom.jar
    

    每次运行 jenkins.war 时,custom.jar 都会在你的类路径中。 jar 实用程序随 jdk 提供。

    1. 使用 --commonLibFolder 参数

    jenkins 使用嵌入式码头工作。默认情况下,jetty 会将 lib 目录中的所有文件添加到类路径中。要指定自定义目录,您可以在 jenkins 启动时使用 --commonLibFolder 参数。以下是将所有 jar 从 libs 目录添加到类路径的方法

    java -jar jenkins.war --commonLibFolder=./libs
    

    注意,使用 --extraLibFolder 将不起作用,因为它只会将 jars 添加到 jetty 类加载器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      相关资源
      最近更新 更多