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

时间:2014-02-27 17:34:44

标签: java maven jenkins dependency-management

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

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

是否有管理此类事情的最佳做法?

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

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

1 个答案:

答案 0 :(得分:3)

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

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

这样,你的(只有你的版本)会得到你的扩展jdk。

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

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

开放的问题是:您真的需要这些扩展来构建您的项目吗?