gpt4 book ai didi

java - 如何在 Jenkins/Maven 构建中管理 jre/lib/ext jar?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:05 24 4
gpt4 key购买 nike

我正在尝试在 Jenkins 盒子上为我的团队建立一个构建。他们使用的产品的文档说要在 $JAVA_HOME/jre/lib/ext 目录中放置 2 个 jar 文件和一个 .properties 文件。

由于这个 Jenkins build box 由另一个团队管理并且包含许多构建,我觉得告诉他们将这些文件安装在可能构建这个项目的所有从属上是一个坏主意。 (特别是如果我们需要升级/更改设置等)

是否有管理此类事情的最佳实践?

到目前为止我尝试过的事情:

  • 将它安装在 $JAVA_HOME/jre/lib/ext == 中。
  • 在 maven 存储库中安装 jar 文件并将属性文件放入 src/main/resources == 不起作用(它在 $M2_REPO/PATH/TO/JAR/jarname.properties 中查找)

最佳答案

如果确实需要部署到 lib/ext 中,最简单的方法是为您的构建提供自定义 jdk(称为 Java6_With_MyProduct),在其中提供压缩/tar'gz'ed 的 jdk。

请您的管理员将其包含在 Jenkins 配置中。

这样,您的(并且只有您的构建)将获得扩展的 jdk。

或者,您可以使用 -Djava.ext.dirs 系统属性来覆盖扩展目录。那样的话,你会

  • 作为预构建步骤将您的扩展复制到您的工作区
  • 将原始扩展从 $JAVA_HOME/jre/lib/ext 复制到同一目录
  • 将 -Djava.ext.dirs=$WORKSPACE/myextensions 设置为 MAVEN_OPTS(仅当实际构建项目需要扩展时)
  • 为 surefire 和 failfast 插件添加 -Djava.ext.dirs=$WORKSPACE/myextensions 到 argLine

悬而未决的问题是:您真的需要这些扩展来构建您的项目吗?

关于java - 如何在 Jenkins/Maven 构建中管理 jre/lib/ext jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22076027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com