我正在将配置参数移出Java应用程序。我发现最好的方法是to extend your classpath并使用.properties
文件(单独留下ZooKeeper用于其他要求)。
所以我的WAR文件不再有任何主机/ IP / URL,用户/密码。
DevOps在测试,阶段,稳定安装中手动分配配置。
现在是Jenkins运行测试的时候了。但它们失败了,因为类路径中没有必需的.propeties
文件。
如何将此配置文件加载到Jenkins以及如何在测试类路径中使用?
maven-surefire-plugin
allow extending classpath和passing system-properties。
因此,只询问如何在Jenkins托管服务器中获取单独的目录并将文件加载到此目录,并为每个构建作业创建别名/占位符/ envvar以在构建配置中引用此路径。
这项工作可以通过SSH访问完成,但我认为这是"错误的方式"。我希望这可以通过Jenkins UI完成(任何经理都可以在WEB浏览器中上传文件)。
UPDATE 我对分布式slave / master版本没有要求,但是很高兴有一个解决方案可以自动将配置文件迁移到Slave ...
以这种方式sshing to host或ftp / scp - 糟糕的事情。
答案 0 :(得分:10)
我阅读了Jenkins的大部分文档,在邮件列表和IRC上查询。是的 - 詹金斯社区是沉默的。在文档中,我找到了配置文件提供程序插件的链接,之后我访问了http://builder.evil.com/jenkins/pluginManager/available页面并查找 config 关键字。
有很多相关的插件对我的主题有多种用处(最无用的):
只有最后一个插件 - Config File Provider Plugin允许通过Jenkins WEB界面编辑配置。它有兄弟 - Managed Script Plugin - 用于上传/管理/编辑自定义脚本。毫无疑问,现在我使用配置文件提供程序插件!
答案 1 :(得分:-1)
您应该将测试所需的配置与其余源代码一起保存,以便在编译之后,您的单元测试可以运行。
在部署.war
之后,DevOps团队应该用他们拥有的每个环境配置来覆盖战争中的配置。