NetBeans
Maven已内置到NetBeans 6.7及更高版本中。对于以前的版本,可以在插件管理中心中获得Maven插件。在本例中,我们使用NetBeans 6.9。NetBeans的一些功能如下:
Running com.companyname.bank.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
可以通过NetBeans运行Maven目标。
可以使用NetBeans自己的控制台来查看Maven命令的输出。
可以更新Maven和IDE之间的依赖关系。
Maven的构建可以在NetBeans中启动。
NetBeans基于Maven的pom.xml实现依赖关系的自动管理。
NetBeans可以通过自己的工作区解决Maven依赖问题,而无需安装到本地Maven存储库,尽管需要依赖的项目位于同一工作区。
NetBeans可以自动从远程Moven库下载所需的依赖项和源代码。
NetBeans提供了一个创建Maven项目pom.xml文件的向导。
NetBeans为Maven存储库提供了一个浏览器,使能够查看本地存储库和外部注册的Maven存储。
<configuration>
<tasks>
<echo>Using env.test.properties</echo>
<copy file="src/main/resources/env.test.properties" tofile="${project.build.outputDirectory}/env.properties" overwrite="true"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
构建配置文件是一系列配置项值,可用于设置或覆盖Maven构建默认值。
使用构建配置文件,可以为不同的环境(如生产和开发环境)自定义构建模式。
配置文件是使用activeProfiles或profiles元素在pom.xml文件中指定的,可以通过各种方式触发。配置文件在构建期间修改POM,用于为参数设置不同的目标环境(例如,开发、测试和生产环境中数据库服务器的地址)。
Building jar: C:\MVN\consumerBanking\target\consumerBanking-1.0-SNAPSHOT.jar
[install:install]
Installing C:\MVN\consumerBanking\target\consumerBanking-1.0-SNAPSHOT.jar
to C:\Users\GB3824\.m2\repository\com\companyname\bank\consumerBanking\
1.0-SNAPSHOT\consumerBanking-1.0-SNAPSHOT.jar
Maven有以下三个标准生命周期:
清洁:项目清洁
默认(或生成):处理项目部署
站点:处理项目站点文档创建
每个生命周期包含一系列阶段。这些阶段相当于Maven提供的统一接口,这些阶段的实现由Maven插件完成。
当我们输入mvn命令(如mvn clean)时,clean对应于clean生命周期中的clean阶段。然而,clean的具体操作由maven clean插件实现。
因此,Maven生命周期每个阶段的具体实现是由Maven插件实现的。
Maven实际上是一个依赖插件执行的框架,每个任务实际上都是由插件完成的。Maven插件通常用于:
- 创建jar文件
- 创建战争文件
- 编译代码文件
- 代码单元测试
- 创建项目文档
- 创建项目报告
<code>mvn [plugin-name]:[goal-name]</code>
<code>mvn compiler:compile</code>
插件是使用plugins元素在pom.xml中定义的。
每个插件可以有多个目标。
可以定义阶段,插件将使用其阶段元素开始处理。我们使用了清洁阶段。
可以通过绑定到插件的目标来配置要执行的任务。我们已经将echo任务绑定到maven antrun插件的运行目标。
就这样。Maven将处理剩下的问题。它将下载本地存储库中不可用的插件并开始处理。
自动化部署
执行多项操作:
检查是否存在本地未提交的修改
确保不依赖快照
更改发布应用程序的版本信息
将POM文件更新为SVN
运行测试用例
提交修订后的POM文件
在SVN上标记代码
添加版本号和其他快照以供将来发布
将修改后的POM文件提交给SVN
mvn release:perform
C:\MVN\bus-core-api>mvn release:prepare
在项目开发期间,部署过程包括以下步骤:
将所有项目代码提交给SVN或代码库并标记它们。
从SVN下载完整的源代码。
构建应用程序。
<modelVersion>4.0.0</modelVersion>
<groupId>bus-core-api</groupId>
<artifactId>bus-core-api</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
将构建导出的WAR或EAR文件存储到公共网络位置。
从网络获取文件并将其部署到生产站点。
更新文档并更新应用程序的版本号。
问题描述
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<scmCommentPrefix>[bus-core-api-release-checkin]-<
/scmCommentPrefix>
</configuration>
</plugin>
</plugins>
</build>
通常,上述开发过程涉及多个团队。一个团队可能会提交代码,另一个团队会构建,等等。由于涉及到人工操作和多团队环境,任何步骤都很可能出错。例如,网络计算机上未更新旧版本,然后部署团队重新部署了早期版本。
解决方案
通过结合以下解决方案自动化部署:
使用Maven构建和发布项目
使用SubVersion和源代码仓库管理源代码
使用远程仓库管理软件(Jfrog或Nexus)管理项目二进制文件。
mvn release:clean
清理工作空间,保证最新的发布进程成功进行。
mvn release:rollback
第一个测试是Maven生命周期阶段。第二个测试为构建配置文件指定参数。该参数通过-P传输。当然,它可以是prod或normal,定义。