使用maven / jenkins构建服务器/客户端

时间:2014-08-17 14:21:17

标签: maven jenkins client-server pom.xml

我要求就如何配置我们的客户端/服务器版本提出建议。我们有一个客户端服务器架构。客户端和服务器的版本紧密耦合,意思是

  1. 它们都存储在同一个git存储库中。
  2. 在开发期间,客户端和服务器的更改必须同时进行,以便在某些情况下保持兼容性
  3. 客户端代码依赖于服务器代码
  4. 目前他们没有分享父母pom。 我想知道从同一个分支编译Client和Server的最佳方法是什么。记住分支是一直创建的,开发人员可以使用参数化构建在私有分支上运行作业。

    选项:

    1. 创建组合父pom。
    2. 创建一个Jenkins作业,并使用shell命令执行另外两个maven构建
    3. 将分支名称添加到版本并将服务器部署到Artifactory

1 个答案:

答案 0 :(得分:0)

Maven模块

您可以在同一个Maven构建中使用 modules aggregate客户端和服务器项目。您不必在继承意义上拥有 POM,但是您需要多一个POM来聚合这两个项目。您需要以下目录/文件结构(通常所有POM文件都命名为pom.xml,为了清楚起见,我在这里重命名了它们):

main-pom.xml
server/
  server-pom.xml
client/
  client-pom.xml

main-pom.xml中指定要在“模块”部分中构建的项目:

<modules>
  <module>server</module>
  <module>client</module>
</modules>

模块名称必须是目录名称。不要担心订单,Maven会根据依赖性来解决这个问题。

如果在客户端和服务器项目(版本,公共依赖项,插件等)之间共享属性是有意义的,那么可以将此方法与inheritance(真正的父POM)结合使用。