通过不同服务器上的jenkings部署两个不同版本的相同jar

时间:2017-04-22 16:00:35

标签: java maven java-ee jenkins continuous-integration

我的java应用程序有两台服务器,我正在使用jenkins在这些服务器上部署我的代码。应用程序是相同的,但由于我们正在进行的工作性质,我们需要在每台服务器上使用不同版本的相同自定义jar。

1:我试图设置环境变量并尝试获取pom.xml中的工件和组ID,但我们无法访问pom.xml中的环境变量

2:我已经尝试更改他们的名字并导入两个罐子,但是其中一个被忽略了,而且两个服务器只使用一个版本。

我很长时间以来一直在苦苦思索,我想到的唯一可能的解决方案是创建两个不同的git存储库,并为每个服务器创建不同的jenkin作业。

任何人都可以帮我弄清楚如何在不同的服务器上导入不同的版本,这意味着很多。提前致谢。

1 个答案:

答案 0 :(得分:2)

如果我找到你的话,

different versions of some custom jars

是您的依赖项的不同版本。使用maven配置文件可以轻松实现这一点。你的pom.xml看起来就像这样(XML被简化为最小化。

 <project>
   <!-- Basic info like model,  artifact, group etc. -->
   <dependencies>
      <!-- Your usual deps as you are used to -->
   </dependencies>
   <profiles>
     <profile>
         <id>profile1</id>
         <dependencies>
              <!-- Extra deps for this profile -->
         </dependencies>
     </profile>
     <profile>
         <id>profile2</id>
         <dependencies>
              <!-- Extra deps for this profile -->
         </dependencies>
     </profile>
   </profiles>
 </project>

IDE通常提供设置配置文件的方法,因此开发人员应该没有问题。从jenkins开始,在从命令行构建时,您将使用给定的配置文件调用命令。您可以拥有单独的工作,也可以使用参数创建工作。

mvn install -P profile1

或者,可以通过enviroment variable激活个人资料。问题可能是在编译期间必须使用此变量。

另一个方法是为Abhilas在评论中提到的不同客户的代码分支。