maven

转载 2016年08月29日 12:40:03


在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然,不就是 mvn clean install 么?事实上比较好的集成命令会稍微复杂些,下面是一些总结:

  • 不要忘了clean: clean能够保证上一次构建的输出不会影响到本次构建。

  • 使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。

  • 使用-U参数: 该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。

  • 使用-e参数:如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。

  • 使用-Dmaven.repo.local参数:如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=/home/juven/ci/foo-repo/这样的参数为每个任务分配本地仓库。

  • 使用-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。

综上,持续集成服务器上的集成命令应该为 mvn clean deploy -B -e -U -Dmaven.repo.local=xxx 。此外,定期清理持续集成服务器的本地Maven仓库也是个很好的习惯,这样可以避免浪费磁盘资源,几乎所有的持续集成服务器软件都支持本地的脚本任务,你可以写一行简单的shell或bat脚本,然后配置以天为单位自动清理仓库。需要注意的是,这么做的前提是你有私有Maven仓库,否则每次都从Internet下载所有依赖会是一场噩梦。


Maven库:

http://repo2.maven.org/maven2/

Maven依赖查询:

http://mvnrepository.com/

Maven常用命令: 
1. 创建Maven的普通java项目: 
   mvn archetype:create 
   -DgroupId=packageName 
   -DartifactId=projectName  
2. 创建Maven的Web项目:   
    mvn archetype:create 
    -DgroupId=packageName    
    -DartifactId=webappName 
    -DarchetypeArtifactId=maven-archetype-webapp    
3. 编译源代码: mvn compile 
4. 编译测试代码:mvn test-compile    
5. 运行测试:mvn test   
6. 产生site:mvn site   
7. 打包:mvn package   
8. 在本地Repository中安装jar:mvn install 
9. 清除产生的项目:mvn clean   
10. 生成eclipse项目:mvn eclipse:eclipse  
11. 生成idea项目:mvn idea:idea  
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package   
13. 编译测试的内容:mvn test-compile  
14. 只打jar包: mvn jar:jar  
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile 
      ( -skipping 的灵活运用,当然也可以用于其他组合命令)  
16. 清除eclipse的一些系统设置:mvn eclipse:clean  

ps: 

一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。 

mvn -version/-v  显示版本信息 
mvn archetype:generate        创建mvn项目 
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app   创建mvn项目 

mvn package            生成target目录,编译、测试代码,生成测试报告,生成jar/war文件 
mvn jetty:run            运行项目于jetty上, 
mvn compile                    编译 
mvn test                    编译并测试 
mvn clean                    清空生成的文件 
mvn site                    生成项目相关信息的网站 
mvn -Dwtpversion=1.0 eclipse:eclipse        生成Wtp插件的Web项目 
mvn -Dwtpversion=1.0 eclipse:clean        清除Eclipse项目的配置信息(Web项目) 
mvn eclipse:eclipse                将项目转化为Eclipse项目 


相关文章推荐

MyEclipse配置maven,Tomcat,SVN

  • 2017年11月23日 10:05
  • 1.43MB
  • 下载

maven-archetype-webapp-1.0.jar

  • 2017年11月24日 14:53
  • 6KB
  • 下载

使用Maven构建多模块项目

在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层)、dao(数据库访问层)、service(业务逻辑层)、web(表现层),这样分层之...

简单的SSM+Maven整合,可扩展

  • 2017年11月23日 14:56
  • 14KB
  • 下载

maven+ssh整合

  • 2017年11月20日 20:13
  • 144KB
  • 下载

maven引用自定义jar包

maven引用自定义jar包 在使用maven构建应用程序的时候我们一般都会有自己的一些框架和工具类。比如新进入一个公司的时候公司会有各种各样的框架。这些框架是如何给开发者使用的呢? 是通过把项目...

maven+ssm分模块

  • 2017年11月23日 13:53
  • 63KB
  • 下载

Maven学习九:依赖-dependency

Maven依赖1. 依赖的配置    根元素project下的dependencies可以包含一个或多个dependency元素,以声明一个或多个依赖。每个依赖可以包含的元素有:groupId、art...
  • lfsfxy9
  • lfsfxy9
  • 2013年11月30日 20:48
  • 6190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:maven
举报原因:
原因补充:

(最多只允许输入30个字)