2017-04-22 45 views
0

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

1:我试过设置环境变量,并试图获得神器和那些在pom.xml中的组ID的,但我们不能在pom.xml中

2访问环境变量:我试着改变他们的名字和导入两个罐子,但这是疯狂的其中一个被忽略,并且这两个服务器只使用一个版本。

我一直在为它奋斗很长一段时间,唯一可能的解决方案是我创建两个不同的git存储库并为每个服务器创建不同的jenkin作业。

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

+0

您可以有两个分支用于分支和不同的Jenkins作业。每个詹金斯的工作将拉各自的分支和部署。这看起来可行的解决方案 – Abhilash

+0

是的,这是有道理的,但没有一种可能性,我可以使用所有分支合并的主分支。使用这个,我必须小心我的依赖关系,并在每次推送它们时检查它们。 –

+0

这是WAR还是EAR部署? –

回答

2

如果我让你正确,

different versions of some custom jars 

是不同的版本你的依赖。这可以使用maven配置文件轻松实现。你的pom.xml看起来similair本(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通常提供的方式来设定个人资料,因此开发者应该不会有问题。从詹金斯,是同时在命令行构建你会调用命令指定的配置文件。你可以有单独的作业,或者你可以用参数来创建你的工作。

mvn install -P profile1 

另外,个人资料可通过enviroment variable激活。问题可能是这个变量必须在编译期间availble的。

另一个aproach将分支您的代码为不同的客户作为阿比拉斯在评论中提到。

相关问题