开发手册 欢迎您!
软件开发者资料库

Maven - 构建自动化

Maven构建自动化 - 从简单和简单的步骤学习Maven,从基本到高级概念,包括概述,环境设置,POM,构建生命周期,构建配置文件,存储库,插件,创建项目,构建和安装。测试项目,外部依赖项,项目文档,项目模板,快照,构建自动化,依赖项管理,部署自动化,Web应用程序,Eclipse IDE,Netbeans IDE,IntelliJ IDEA。

构建自动化定义了在项目构建成功完成后依赖项目构建过程开始的场景,以确保依赖项目是稳定的.

示例

考虑一个团队正在开发一个项目 bus-core-api ,其他两个项目 app- web-ui app-desktop-ui 是依赖的.

app-web-ui 项目正在使用1.0 -BNAPSHOT bus-core-api 项目.

   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-SNAPSHOT .

   4.0.0   app_desktop_ui   app_desktop_ui   1.0   jar   app_desktop_ui   http://maven.apache.org         UTF-8                     junit         junit         3.8.1         test                     bus_core_api         bus_core_api         1.0-SNAPSHOT         system         C:\MVN\bus_core_api\target\bus_core_api-1.0-SNAPSHOT.jar         

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 版本.

  • 使用Hudson等持续集成(CI)服务器自动管理构建自动化.

使用Maven

更新 bus-core-api 项目pom.xml.

   4.0.0   bus-core-api   bus-core-api   1.0-SNAPSHOT   jar                           maven-invoker-plugin         1.6                     true                           app-web-ui/pom.xml               app-desktop-ui/pom.xml                                                         build                                 run                                                      

让我们打开命令控制台,转到 C:\> MVN> bus-core-api 目录并执行关注 mvn 命令.

 > mvn clean package -U

Maven将开始构建项目 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:\MVN\bus-core-ui\target\bus-core-ui-1.0-SNAPSHOT.jar[INFO] ------------------------------------------------------------------[INFO] BUILD SUCCESSFUL[INFO] ------------------------------------------------------------------

一次 bus-core-api 构建成功,Maven将开始构建 app-web-ui 项目.

[INFO] ------------------------------------------------------------------[INFO] Building app-web-ui[INFO] task-segment: [package][INFO] ------------------------------------------------------------------...[INFO] [jar:jar {execution: default-jar}][INFO] Building jar: C:\MVN\app-web-ui\target\app-web-ui-1.0-SNAPSHOT.jar[INFO] ------------------------------------------------------------------[INFO] BUILD SUCCESSFUL[INFO] ------------------------------------------------------------------

一旦 app-web-ui 构建成功,Maven将开始构建 app-desktop-ui project.

[INFO] ------------------------------------------------------------------[INFO] Building app-desktop-ui[INFO] task-segment: [package][INFO] ------------------------------------------------------------------...[INFO] [jar:jar {execution: default-jar}][INFO] Building jar: C:\MVN\app-desktop-ui\target\app-desktop-ui-1.0-SNAPSHOT.jar[INFO] -------------------------------------------------------------------[INFO] BUILD SUCCESSFUL[INFO] -------------------------------------------------------------------

在Maven中使用持续集成服务

使用CI服务器更多比开发者更好.每次添加新项目(例如,app-mobile-ui)时,都不需要更新 bus-core-api 项目,作为总线核心的依赖项目 - api 项目. Hudsion是一个用java编写的持续集成工具,它在servlet容器中,例如Apache tomcat和glassfish应用服务器. Hudson使用Maven依赖关系管理自动管理构建自动化.以下快照将定义Hudson工具的作用.

自动构建

Hudson认为每个项目都是作为工作.一旦项目代码签入SVN(或映射到Hudson的任何源管理工具),Hudson就会启动它的构建作业,一旦这个作业完成,它就会自动启动其他相关作业(其他相关项目).

在上面的例子中,当在SVN中更新 bus-core-ui 源代码时,Hudson开始构建它.一旦构建成功,Hudson会自动查找依赖项目,并开始构建 app-web-ui app-desktop-ui 项目.