Maven:基本使用

1.项目管理工具:
 Maven的repository,说白了就是dependency的仓库,它按照一定的规则将dependency存放起来,以作缓存,如果本机的 repository找不到某个dependency,它就会自动去找到网上其它相关联的repository,找到的话将其下载至本地,那么下次它就不 再去其它地方下载了,直接从本地获取


Maven常用命令

mvn compile 
编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时。

mvn test-compile 
编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。

mvn test
运行应用程序中的单元测试

mvn site
生成项目相关信息的网站

mvn clean
清除目标目录中的生成结果

mvn package
依据项目生成 jar 文件,打包之前会进行编译,测试。

mvn install
在本地 Repository 中安装 jar。

mvn eclipse:eclipse
生成 Eclipse 项目文件及包引用定义,注意,需确保定义Classpath Variables: M2_REPO,指向本地maven类库目录。


Maven2,它是一个模块化项目构建工具(Building a Project )。它能够管理依赖、构建周期、测试、 打包并且在仓库中发布你的制品。它是一个项目构建工具,领先于通常的构建工具(实际上它的第一个版本是在Ant之上的一层)。
apache ivy2 对项目依赖的文件可以进行统一的管理,依赖于ant,它是一个管理(记录、跟踪、解析和报告)项目依赖的工具 (dependency tool)。

Maven 2和Ivy常被放在一起对比,但实际上两者是不同类型的工具。Ivy仅提供依赖管理功能,但是Maven 2是一个软件项目管理综合工具,能够管理构建、报告、文档,以及根据中心化的信息来管理依赖。Ant和Ivy 2.0集成在一起,与Maven 2进行比较才比较合适。

两个工具处理冲突管理(Conflict management)的方式是不同的,冲突管理指处理传递依赖时解决冲突的能力。Ivy允许由模块定制冲突管理器和规则,而Maven 2的冲突管理则基于最近的定义(也就是说,一个模块依赖于foo 1.0,这会导致模块的所有依赖都不能使用foo 1.1)。

Maven 2通过一个叫阶段(scope)的概念来处理其中的依赖配置。在Maven 2中,一个依赖只在定义它的测试阶段或构建阶段有效。Ivy能够创建多配置映射,这些映射可将每个配置(需构建工件的声明)与其它模块的依赖绑定在一起,以此提供了更多的定制选项。

Maven 2关于依赖管理的文档很有限,相对于此,Ivy的文档内容更宽泛,包含大量的例子和指南,同时包括FAQ。有些企业不能使用公共仓库,并在基于Ant的构建系统中有大量投资,对于这样的企业来说,Ivy支持企业仓库的创建、与Ant紧密集成,这些附加的特征都使Ivy成为能替代Maven 2的依赖管理工具。


mavn  常用命令 
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 
    (mvn install -D maven.test.skip=true 跳过TestCase检验,否则在install时会运行TestCase测试) 
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插件。 
=============================== 
其他: 
mavn jar包来源:http://www.mvnrepository.com/
http://www.infoq.com/cn/minibooks/jee-webserver-cluster 
pom中的属性文件: 
<profiles> 
<profile> 
<id>191</id> 
<properties> 
<database.url>jdbc:oracle:thin:@192.168.0.191:1521:xe</database.url> 
<database.driverClassName>oracle.jdbc.OracleDriver</database.driverClassName> 
<database.username>jrtsch</database.username> 
<database.password>jrt2010</database.password> 
</properties> 
</profile> 


          <profile> 
<id>70debug</id> 
<properties> 
<database.url>jdbc:oracle:thin:@219.148.162.70:1537:jrtdbtest</database.url> 
<database.driverClassName>oracle.jdbc.OracleDriver</database.driverClassName> 
<database.username>jrtsch</database.username> 
<database.password>jrt2010</database.password> 

</properties> 
</profile> 

     </profiles> 

     数据库配置文件: 
     database.password=${database.password} 
database.url=${database.url} 
database.username=${database.username} 
database.driverClassName=${database.driverClassName} 
============================== 
建立一个maven web工程 
mvn archetype:create -DgroupId=com.ex -DartifactId=myexample -DarchetypeArtifactId=maven-archetype-webapp 
1.打包命令,如果将profile的属性值入: 
  mvn package -P191 
2.打包 mvn package 
3.打包跳过测试:mvn package -D mavne.test.skip=true 
4.依赖包 
使用maven命令:mvn dependency:sources  下载依赖包的源代码。 

MAVEN手工添加第三方jar包(ojdbc14.jar)第三方jar包需要手工添加,命令如下: 
mvn install:install-file -Dfile=E:\maven221\repository\com\oracle\ojdbc14\10.2.0.2.0 

\ojdbc14-10.2.0.2.0.jar -DgroupId=com.org.common.oracle -DartifactId=oracle - 

Dversion=10.2.0.2.0 -Dpackaging=jar -DgeneratePom=true 

5.运行单个单元测试 
mvn -Dtest=TestXXX test 




建立项目的命令为 
mvn archetype:generate -DarchetypeArtifactId=\[项目类型] -DgroupId=\[组识别] 
-DartifactId=\[项目名称] -Dversion=\[版本] -Dpackage=\[包] 

mvn archetype:generate -DgroupId=com.promotion -DartifactId=zefun_promotion -Dpackaging=jar -DarchetypeArtifactId=maven-archetype-webapp
项目类型(archetypeArtifactId)可以是下列选项 
1. maven-archetype-j2ee-simple (J2EE 项目) 
2. maven-archetype-portlet (门户) 
3. maven-archetype-quickstart (一般 Java project) 
4. maven-archetype-site (复杂站点) 
5. maven-archetype-site-simple (简单站点) 
6. maven-archetype-webapp (Java Web 站点) 
groupId 用于项目的分组 
artifactId 项目的名称,也就是包名称 
version 版本 
package 主要设定目录的层次 

============= 
<plugin> 
<artifactId>maven-war-plugin</artifactId> 
<version>2.1.1</version> 
<configuration> 
<!-- exclude those which shared lib 
<packagingExcludes> 
WEB-INF/lib/nric-framework*.jar, 
WEB-INF/lib/spring-core*.jar, 
WEB-INF/lib/spring-asm*.jar, 
WEB-INF/lib/commons-*.jar, 
WEB-INF/lib/spring-aop*.jar, 
WEB-INF/lib/aopalliance*.jar, 
WEB-INF/lib/spring-beans*.jar, 
WEB-INF/lib/spring-context*.jar, 
WEB-INF/lib/spring-orm*.jar, 
WEB-INF/lib/spring-tx*.jar, 
WEB-INF/lib/ibatis*.jar, 
WEB-INF/lib/oracle*.jar, 
WEB-INF/lib/jcl-over-slf4j*.jar, 
WEB-INF/lib/slf4j-*.jar, 
WEB-INF/lib/javassist*.jar, 
WEB-INF/lib/aspectjrt*.jar, 
WEB-INF/lib/aspectjweaver*.jar, 
WEB-INF/lib/spring-jdbc*.jar, 
WEB-INF/lib/log4j*.jar, 
WEB-INF/lib/quartz*.jar, 
WEB-INF/lib/cglib*.jar, 
WEB-INF/lib/asm-*.jar, 
WEB-INF/lib/joda-time*.jar 
</packagingExcludes>--> 
<!-- Use this to include a selection of jars that will be included in the WAR --> 
<!-- 
<packagingIncludes> 
**/*.xml,**/*.properties,**/*.class,**/*.png,**/*.css,**/*.js,**/*.jsp, 
WEB-INF/lib/spring-web*.jar 
</packagingIncludes> 
--> 
<archive> 
<manifest> 
<addClasspath>true</addClasspath> 
<classpathPrefix>lib/</classpathPrefix> 
</manifest> 
</archive> 
</configuration> 
</plugin> 

Java代码  

1.     mvn pom.xml文件配置详解  

2.     http://maven.apache.org/ref/2.0.8/maven-model/maven.html  

3.       

4.     mvn -version/-v  显示版本信息  

5.     mvn archetype:generate      创建mvn项目  

6.     mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app   创建mvn项目  

7.       

8.     mvn package         生成target目录,编译、测试代码,生成测试报告,生成jar/war文件  

9.     mvn jetty:run           运行项目于jetty上,  

10.  mvn compile                 编译  

11.  mvn test                    编译并测试  

12.  mvn clean                   清空生成的文件  

13.  mvn site                    生成项目相关信息的网站  

14.  mvn -Dwtpversion=1.0 eclipse:eclipse        生成Wtp插件的Web项目  

15.  mvn -Dwtpversion=1.0 eclipse:clean      清除Eclipse项目的配置信息(Web项目)  

16.  mvn eclipse:eclipse             将项目转化为Eclipse项目  

17.    

18.  在应用程序用使用多个存储库  

19.  <repositories>      

20.      <repository>        

21.          <id>Ibiblio</id>        

22.          <name>Ibiblio</name>        

23.          <url>http://www.ibiblio.org/maven/</url>      

24.      </repository>      

25.      <repository>        

26.          <id>PlanetMirror</id>        

27.          <name>Planet Mirror</name>        

28.          <url>http://public.planetmirror.com/pub/maven/</url>      

29.      </repository>    

30.  </repositories>  

31.    

32.    

33.  mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/  

34.    

35.    

36.  发布第三方Jar到本地库中:  

37.    

38.  mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar  

39.    

40.    

41.   -DdownloadSources=true  

42.    

43.   -DdownloadJavadocs=true  

44.    

45.  mvn -e          显示详细错误 信息.  

46.    

47.  mvn validate        验证工程是否正确,所有需要的资源是否可用。   

48.  mvn test-compile    编译项目测试代码。 。   

49.  mvn integration-test    在集成测试可以运行的环境中处理和发布包。   

50.  mvn verify      运行任何检查,验证包是否有效且达到质量标准。    

51.  mvn generate-sources    产生应用需要的任何额外的源代码,如xdoclet。  



另外 

Java代码  

1.     Maven常用命令:   

2.     1. 创建Maven的普通java项目:   

3.        mvn archetype:create   

4.        -DgroupId=packageName   

5.        -DartifactId=projectName    

6.     2. 创建Maven的Web项目:     

7.         mvn archetype:create   

8.         -DgroupId=packageName      

9.         -DartifactId=webappName   

10.      -DarchetypeArtifactId=maven-archetype-webapp      

11.  3. 编译源代码: mvn compile   

12.  4. 编译测试代码:mvn test-compile      

13.  5. 运行测试:mvn test     

14.  6. 产生site:mvn site     

15.  7. 打包:mvn package     

16.  8. 在本地Repository中安装jar:mvn install   

17.  9. 清除产生的项目:mvn clean     

18.  10. 生成eclipse项目:mvn eclipse:eclipse    

19.  11. 生成idea项目:mvn idea:idea    

20.  12. 组合使用goal命令,如只打包不测试:mvn -Dtest package     

21.  13. 编译测试的内容:mvn test-compile    

22.  14. 只打jar包: mvn jar:jar    

23.  15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile   

24.        ( -skipping 的灵活运用,当然也可以用于其他组合命令)    

25.  16. 清除eclipse的一些系统设置:mvn eclipse:clean    

26.    

27.  ps:   

28.    

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

30.    

31.  mvn -version/-v  显示版本信息   

32.  mvn archetype:generate        创建mvn项目   

33.  mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app   创建mvn项目   

34.    

35.  mvn package            生成target目录,编译、测试代码,生成测试报告,生成jar/war文件   

36.  mvn jetty:run            运行项目于jetty上,   

37.  mvn compile                    编译   

38.  mvn test                    编译并测试   

39.  mvn clean                    清空生成的文件   

40.  mvn site                    生成项目相关信息的网站   

41.  mvn -Dwtpversion=1.0 eclipse:eclipse        生成Wtp插件的Web项目   

42.  mvn -Dwtpversion=1.0 eclipse:clean        清除Eclipse项目的配置信息(Web项目)   

43.  mvn eclipse:eclipse                将项目转化为Eclipse项目   

44.    

45.  在应用程序用使用多个存储库   

46.  <repositories>      

47.      <repository>        

48.          <id>Ibiblio</id>        

49.          <name>Ibiblio</name>        

50.          <url>http://www.ibiblio.org/maven/</url>      

51.      </repository>      

52.      <repository>        

53.          <id>PlanetMirror</id>        

54.          <name>Planet Mirror</name>        

55.          <url>http://public.planetmirror.com/pub/maven/</url>      

56.      </repository>    

57.  </repositories>   

58.    

59.    

60.  mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/   

61.    

62.    

63.  发布第三方Jar到本地库中:   

64.    

65.  mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar   

66.    

67.    

68.  -DdownloadSources=true   

69.    

70.  -DdownloadJavadocs=true   

71.    

72.  mvn -e            显示详细错误 信息.   

73.    

74.  mvn validate        验证工程是否正确,所有需要的资源是否可用。   

75.  mvn test-compile    编译项目测试代码。 。   

76.  mvn integration-test     在集成测试可以运行的环境中处理和发布包。   

77.  mvn verify        运行任何检查,验证包是否有效且达到质量标准。       

78.  mvn generate-sources    产生应用需要的任何额外的源代码,如xdoclet。   

 

82.  常用命令:   

83.  mvn -v 显示版本   

84.  mvn help:describe -Dplugin=help 使用 help 插件的  describe 目标来输出 Maven Help 插件的信息。   

85.  mvn help:describe -Dplugin=help -Dfull 使用Help 插件输出完整的带有参数的目标列   

86.  mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 获取单个目标的信息,设置  mojo 参数和  plugin 参数。此命令列出了Compiler 插件的compile 目标的所有信息   

87.  mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目标   

88.  mvn help:effective-pom 看这个“有效的 (effective)”POM,它暴露了 Maven的默认设置   

89.    

90.  mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook 创建Maven的普通java项目,在命令行使用Maven Archetype 插件   

91.  mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序   

92.  mvn dependency:resolve 打印出已解决依赖的列表   

93.  mvn dependency:tree 打印整个依赖树   

94.    

95.  mvn install -X 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行   

96.  mvn install -Dmaven.test.skip=true 给任何目标添加maven.test.skip 属性就能跳过测试   

97.  mvn install assembly:assembly 构建装配Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件   

98.    

99.  mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用   

100.  mvn compile 编译你的项目   

101.  mvn clean install 删除再编译   

102.    

103.  mvn hibernate3:hbm2ddl 使用 Hibernate3 插件构造数据库  

 

转载于:https://my.oschina.net/wii01/blog/1491294

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值