maven的学习心得
已经接触了maven项目有一段时间了,开始时仅仅会使用,在使用中发现了它的强大和方便,于是决心研究一下:
首先,普及一下maven参数:
- -D:传入属性参数
- -P:使用POM中指定的配置
- -e:显示maven运行时的出错信息
- -o:离线执行命令,即不从远程仓库下载jar包
- -X:显示maven允许的debug信息
- -U:强制去远程更新snapshot包
其次,用maven命令创建项目:
- 创建普通maven的java项目:mvn archetype:create -DgroupId=packageName -DartifactId=projectName
- 创建maven的web项目:mvn archetype:create -DgroupId=packageName -DartifactId=projectName -DarchetypeArtifaceId=maven-archetype-webapp
- 也可用generate命令根据提示创建maven项目:mvn archetype:generate
再次,maven生命周期相关命令:
mvn compile :编译源代码
mvn test-compile:编译测试代码
mvn test:运行测试
mvn site:产生site
mvn package:打包
mvn install:将本地的Repository安装jar包
mvn clean:清除产生的项目
mvn eclipse:eclipse:生成eclipse项目
mvn idea:idea:生成idea项目
mvn -Dtest package:组合使用goal命令,如打包不测试
mvn test-compile:编译测试的内容
mvn jar:jar:只打jar包
mvn test -skipping compile -skipping test-compile:只测试而不编译,也不测试编译
mvn eclipse:clean:清除eclipse的一些系统设置
其他相关命令:
1. mvn help:describe
你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的.参数: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:与-Dplugin一起使用,它会列出某个插件的goal信息,如果嫌不够详细,同样可以加-Ddetail.(注:一个插件goal也被认为是一个 “Mojo”) 如运行mvn help:describe -Dplugin=help -Dmojo=describe
2. mvn tomcat:run
用了maven后,你再也不需要用eclipse里的tomcat来运行web项目(实际工作中经常会发现用它会出现不同步更新的情况),只需在对应目录里运行 mvn tomat:run命令,然后就可在浏览器里运行查看了.如果你想要更多的定制,可以在pom.xml文件里加下面配置:org.codehaus.mojo tomcat-maven-plugin /web 当然你也可以在命令里加参数来实现特定的功能,下面几个比较常用:
1. 跳过测试:-Dmaven.test.skip(=true)
2. 指定端口:-Dmaven.tomcat.port=9090
3. 忽略测试失败:-Dmaven.test.failure.ignore=true 当然,如果你的其它关联项目有过更新的话,一定要在项目根目录下运行mvn clean install来执行更新,再运行mvn tomcat:run使改动生效.
3. mvnDebug tomcat:run
这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单.上面提到的那几个参数在这里同样用.
4. mvn dependency:sources
有了它,你就不用到处找源码了,运行一下,你项目里所依赖的jar包的源码就都有了