Maven自动化构建教程与项目构建实践
时间:2026-08-12 | 作者:火苗实验室 | 阅读:0自动化构建定义了这样一种场景: 在一个项目成功构建完成后,其相关的依赖工程即开始构建,这样可以保证其依赖项目的稳定。
比如一个团队正在开发一个项目 bus-core-api, 并且有其他两个项目 app-web-ui 和 app-desktop-ui 依赖于这个项目。
app-web-ui 项目使用的是 bus-core-api 项目的 1.0 快照:
4.0.0
app-web-ui
app-web-ui
1.0
jar
bus-core-api
bus-core-api
1.0-SNAPSHOT
app-desktop-ui 项目使用的是 bus-core-api 项目的 1.0 快照:
4.0.0
app-desktop-ui
app-desktop-ui
1.0
jar
bus-core-api
bus-core-api
1.0-SNAPSHOT
bus-core-api 项目:
4.0.0
bus-core-api
bus-core-api
1.0-SNAPSHOT
jar
现在 app-web-ui 和 app-desktop-ui 项目的团队要求不管 bus-core-api 项目何时变化,他们的构建过程都应当可以启动。
使用快照可以确保最新的 bus-core-api 项目被使用,但要达到上面的要求,我们还需要做一些额外的工作。
可以使用两种方式:
- 在 bus-core-api 项目的 pom 文件中添加一个 post-build 目标操作来启动 app-web-ui 和 app-desktop-ui 项目的构建。
- 使用持续集成(CI) 服务器,比如 Hudson,来自行管理构建自动化。
使用 Ma ven
修改 bus-core-api 项目的 pom.xml 文件。
4.0.0
bus-core-api
bus-core-api
1.0-SNAPSHOT
jar
ma ven-invoker-plugin
1.6
true
app-web-ui/pom.xml
app-desktop-ui/pom.xml
build
run
打开命令控制台,切换到 C: > MVN > bus-core-api 目录下,然后执行以下命令。
C:MVNbus-core-api>mvn clean package -U
执行完命令后,Ma ven 将开始构建项目 bus-core-api。
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building bus-core-api
[INFO] task-segment: [clean, package]
[INFO] ------------------------------------------------------------------
...
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: C:MVNbus-core-uitarget
bus-core-ui-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
bus-core-api 构建成功后,Ma ven 将开始构建 app-web-ui 项目。
[INFO] ------------------------------------------------------------------
[INFO] Building app-web-ui
[INFO] task-segment: [package]
[INFO] ------------------------------------------------------------------
...
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: C:MVNapp-web-uitarget
app-web-ui-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
app-web-ui 构建成功后,Ma ven 将开始构建 app-desktop-ui 项目。
[INFO] ------------------------------------------------------------------
[INFO] Building app-desktop-ui
[INFO] task-segment: [package]
[INFO] ------------------------------------------------------------------
...
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: C:MVNapp-desktop-uitarget
app-desktop-ui-1.0-SNAPSHOT.jar
[INFO] -------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] -------------------------------------------------------------------
使用持续集成服务器(CI)
如果改用 CI 服务器,事情就会顺畅很多。每当有新项目加入,比如示例里的 app-mobile-ui 需要依赖 bus-core-api 时,开发者其实不用再手动去更新 bus-core-api 项目的 pom。Hudson 会借助 Ma ven 的依赖管理机制,把工程的自动化创建这件事直接接过去。
Hudson 把每个项目构建当成一次任务。在一个项目的代码提交到 SVN (或者任何映射到 Hudson 的代码管理工具)后,Hudson 将开始项目的构建任务,并且一旦此构建任务完成,Hudson 将自动启动其他依赖的构建任务(其他依赖项目的构建)。
在上面的例子中,当 bus-core-ui 源代码在 SVN 更新后,Hudson 开始项目构建。一旦构建成功,Hudson 自动地查找依赖的项目,然后开始构建 app-web-ui 和 app-desktop-ui 项目。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- SumatraPDF远程控制指南DDE命令与自动化脚本详解
- 时间:2026-08-23
-
- 年GEO工具监测分析与自动化闭环构建实践
- 时间:2026-08-21
-
- C#实现PDF页码自动插入方法与实用技巧
- 时间:2026-08-21
-
- macOS应用公证自动化指南:用fastlane实现提交流程
- 时间:2026-08-21
-
- Scrutor实现.NET依赖注入自动化的优雅方案
- 时间:2026-08-20
-
- 品牌AI曝光监测怎么做?人工、API自动化与专业系统选型指南
- 时间:2026-08-18
-
- VSCode中Node.js项目npm、yarn与pnpm脚本执行优先级配置
- 时间:2026-08-17
-
- AI在CI/CD管道中的角色定位与审查测试部署自动化边界
- 时间:2026-08-17
精选合集
更多大家都在玩
大家都在看
更多-
- 为什么湿头发更容易断裂 蚂蚁庄园今日答案9.15
- 时间:2026-09-14
-
- 蚂蚁庄园今天答题答案2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园答题今日答案2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园小课堂2026年9月15日最新题目答案
- 时间:2026-09-14
-
- 小鸡答题今天的答案是什么2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园每日答题答案2026年9月15日
- 时间:2026-09-14
-
- 糖尿病患者禁食所有含糖食物吗 蚂蚁庄园今日答案9月15日
- 时间:2026-09-14
-
- 2026年9月14日蚂蚁新村答案
- 时间:2026-09-14
