结合Maven2进行J2EE项目构建(二)

开发人员要使用内部仓库,只需修改本地工程pom.xml ,在 repository 配置后加上:

<repository>
<id>companyName</id>
<url>http:// ${ip}/maven</url>
</repository>



3.每日构建
为了保证项目质量,尽早的发现项目中的bug,我们需要每日对系统进行构建,这也是我们使用maven的初衷之一,maven的几个命令就可帮助我们完成这项任务,当然我们可以使用持续构建工具与maven结合实现定时自动构建。构建方式:


mvn test
mvn package
mvn install



maven 会自动编译,测试,运行所有的testcase,这也要求我们的开发人员一定要按照规则编写单元测试代码,否则每日构建的意义就不大了。appfuse框架中提供了很好的单元测试代码,包括针对数据库层,业务逻辑层,web展示层等等,如果我们能很好的编写这些单元测试,那么对于系统后续的缺陷管理和控制是大有裨益的。

构建完成后或构建时需要对最新版本的项目进行部署,便于次日安排测试人员进行测试,maven提供多多种部署方式,在 pom.xml进行项目的部署配置,不同的部署方式根据协议的不同,配置方式也有所差异:
以文件方式部署

<project>
[...]
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>file://${basedir}/target/deploy</url>
</repository>
</distributionManagement>
[...]
</project>



以SSH2方式部署

<project>
[...]
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>scp://sshserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
[...]
</project>



以SFTP方式部署

<project>
[...]
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>sftp://ftpserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
[...]
</project>



以扩展SSH方式部署

目前为止上述3中方式已经被Maven包含,所以只要 distributionManagement就可以了,但是使用扩展SSH命令部署的话你不仅需要配置distributionManagement还需要一个build extension,如下

<project>
[...]
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>scpexe://sshserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>1.0-alpha-6</version>
</extension>
</extensions>
</build>
[...]
</project>



The build extension specifies the use of the Wagon external SSH provider, which does the work of moving your files to the remote server. Wagon is the general purpose transport mechanism used throughout Maven.
The build extension specifies the use of the Wagon external SSH provider, which does the work of moving your files to the remote server. Wagon is the general purpose transport mechanism used throughout Maven.

以FTP方式部署

<project>
[...]
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>ftp://ftpserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-alpha-6</version>
</extension>
</extensions>
</build>
[...]
</project>



一旦你配置好了相应的POM你可以执行下列命令来开始部署:
mvn deploy

同时也可通过执行一下命令生成此项目的站点报告,供项目参与人员使用。
mvn site


三. 结论

maven的强大显而易见,有很多其他的特性本文没有提及,如对各类插件的支持,以及对项目模块划分和继承关系的管理,这些都是maven的特性,也是 maven对项目生命周期的详尽诠释,有兴趣深入的TX可以下载我在附件中提供的教程《Better Builds With Maven2》.同时我也提供我根据appfuse建立的一套项目框架,可在myeclipse环境下使用,大家可以共同探讨完善。

附 1:使用artifactory为Maven2团队开发建立内部开发仓库详解
在真正使用Maven后是为团队进行定制,所以我们不应使用官网的开发库,应在本地建立一个内部开发库对团队的jar包进行管理,所以我们首先搭建一个内部库环境,除文章上面所述的搭建Apache服务器方法外,我们还可以使用artifactory(下载地址:http://www.jfrog.org/sites/artifactory /latest/),一个很好的maven内部库的应用系统,下载后执行bin目录下的artifactory.bat命令即可。启动后可访问控制台http://内部库 ip:8081/artifactory/验证服务是否成功启动。默认的用户名为admin,密码为 password。artifactory最重要的是可配置第三方jar包,在deploy artifacts中加入并制定其groupId和artifactId即可
(不要忘记更改本地的pom.xml文件引入新加的jar包)。
在开发端我们需要更改全局配置文件setting.xml文件,将工程中setting.xml放入本地maven2->conf目录下,配置内部仓库的地址,只需要在setting.xml的mirrors元素中加入以下配置:


<mirror>
<id>emay local</id>
<mirrorOf>central</mirrorOf>
<name>emay local artifactory</name>
<url>http://内部库ip:8081/artifactory/repo</url>
</mirror>



这里要注意的是,在加入这段代码后我使用的appfuse框架中自带的应用服务器tomcat6进行构建,不能正常运行,报tomcat出错,把这段去掉或者在pom.xml中将应用服务器改为tomcat5.5后运行正常。看来maven还是有不少bug需要改进。

配置完成后再运行mvn install即可正常进行构建,maven会从本地内部库中寻找项目所依赖的jar包。运行mvn clean清除maven生成文件。


附2:maven2命令大全

validate,验证工程是否正确,所有需要的资源是否可用。
compile,编译项目的源代码。
test-compile,编译项目测试代码。
test,使用已编译的测试代码,测试已编译的源代码。
package,已发布的格式,如jar,将已编译的源代码打包。
integration-test,在集成测试可以运行的环境中处理和发布包。
verify,运行任何检查,验证包是否有效且达到质量标准。
install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值