千家信息网

maven多个项目之间的依赖关系管理

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,本篇内容主要讲解"maven多个项目之间的依赖关系管理",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"maven多个项目之间的依赖关系管理"吧!1.应用Ag
千家信息网最后更新 2024年11月21日maven多个项目之间的依赖关系管理

本篇内容主要讲解"maven多个项目之间的依赖关系管理",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"maven多个项目之间的依赖关系管理"吧!

1.应用Aggregation管理多个子项目

Maven中有一个Aggregation(聚合),可以将多个项目作为模块添加到一个pom.xml中,然后告诉Jenkins这个顶层pom.xml,就可以自动从Git中拿出这些项目的源代码,并build所有的子项目和运行相应的测试程序。我这里使用的是TestNG。

比如我有两个maven项目client和email_sender,我希望一次编译并测试,在这两个项目文件夹之上的目录上添加一个pom.xml,内容如下:

   4.0.0    com.kaimei.datacenter   cml   2.0   pom         client     email_sender    

然后只要告诉Jenkins中这个pom.xml的路径即可。点击build now进行测试,可以看到两个子项目都已经被下载源代码和编译,运行了TestNG的测试程序。

注意module名称应该是子项目的目录名。

2.多个项目之间的依赖关系管理

client和email_sender项目在上例中没有关联关系,为了演示持续集成在依赖树的build管理,现在建立一个新的maven项目名叫mongo_utility,这个项目提供了一个类DBManager封装了MongoDB的连接,代码来源于我的另一篇文章:http://blog.csdn.net/sheismylife/article/details/7090526

client项目和email_sender项目都通过DBManager类来和MongoDB建立连接。因此它们的pom.xml中都有这一段:

   com.kaimei.datacenter   mongo_utility   1.0        

build成功。仔细看Console Output,Jenkins的行为和直接使用mvn clean compile不太一样。Jenkins会将mongo_utility的源代码取出来,然后重新编译,安装到本地仓库,然后再编译其他两个工程。如果直接敲mvn clean compile的话,mongo_utility-1.0.jar会直接从私服上下载然后安装,不会编译。

3.多个项目共享相同的设置

client,email_sender和mongo_utility三个项目都用到了mongodb java library,为了便于管理,没有必要让它们各自的pom.xml中都定义相同的dependency。Maven将每个项目的pom.xml看作一个工程对象,通过继承可以让它们共享同一个配置。

在顶层的pom.xml中添加mongodb依赖:

        org.mongodb     mongo-java-driver     2.7.2    

然后在client,mongo_utility和email_sender项目的pom.xml中分别删除上面的依赖,并添加如下配置:

   com.kaimei.datacenter   cml   1.0   ../pom.xml 

然后测试,大功告成。

4.模块部署到nexus服务器上

如果想将某个模块项目比如这里的mongo_utility项目部署到nexus服务器上,需要调整顶层目录的pom.xml,加上下面的配置:

        sheismylife     http://S1:8081/nexus/content/repositories/sheismylife    

但是这样三个模块项目都自动继承了deploy功能。其实我只想mongo-utility模块部署到nexus上,暂时把问题放在这里吧。

然后在顶层目录上执行mvn clean deploy,一切顺利。将代码提交到git仓库中,然后修改Jenkins的项目配置页面,添加clean deploy命令。

点击Build Now按钮,看看结果,一切OK.值得一提的是,如果你通过mvn命令行执行正确,而通过Jenkins执行错误,重新启动一下Jenkins服务,或许能解决。我已经碰到几次了,似乎Jenkins有bug.

5.通过Jenkins将web项目部署到Glassfish或者Tomcat

基本做法还是通过Maven项目的plugin来完成部署。有一个问题是如果web项目和其他几个项目都作为一个大项目的模块被聚合在一起,而且都继承某个parent pom.xml,那么如何用一个Maven命令就能编译所有的模块,部署到nexus私服,而且将web项目发布到Glassfish或者Tomcat上。还正在研究,希望能够够通过Maven来实现这个功能。

6.一个Jenkins上的多个project之间的顺序执行

这个很简单,Jenkins的project配置里面可以设置在某个project之后build,或者在本project build之后build other project.

7.多个Jenkins之间的远程调用

S1上的Jenkins A调用某个shell脚本,比如curl http://S2/job/test/build

S2上的Jenkins B的test project就会被触发

到此,相信大家对"maven多个项目之间的依赖关系管理"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

项目 多个 管理 模块 之间 编译 测试 配置 两个 子项 目录 顶层 内容 命令 子项目 源代码 服务 相同 三个 仓库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 魔兽世界金币服务器通用吗 流放者柯南服务器设置怎么点不了 计算机三级网络技术题型 联通云服务器收入 服务器安全狗和云锁 输入法下载软件开发 中国工商银行数据库 山东欧码软件开发有限公司简介 广州的动网络技术有限公司 自动化设备上位机软件开发 互联网科技有限公司座机号码 周村应用软件开发报价 乐众享网络技术有限公司 支持sql数据库的空间 课程论文会放进数据库吗 自定义字段数据库选择 数据库中两张表连接 网络技术和信息管理啥区别 软件开发企业研发支出的结转 秦皇岛IOS软件开发招聘 常州大型软件开发哪家好 数据库自增的英文 定远县学校网络安全 计算机三级真题网络技术 安阳外卖软件开发平台 虚拟机如何创建服务器 漫威未来革命手游亚服服务器 服务器机柜摆放标准 实时数据库国际品牌 普通主板能加服务器内存吗
0