一:常用命令:
清空:mvn clean编译:mvn compile打包:mvn package打包并安装到本地仓库: mvn install打包并部署到远程仓库: mvn deploy
只打包不测试:mvn -Dtest packagemvn -Dmaven.test.skip=true packagesnapshots包强制更新: mvn package -u
传递参数:mvn package -DskipUserTest=true
分析项目的依赖信息:mvn dependency:analyze 或 mvn dependency:tree
清除eclipse系统设置:mvn eclipse:clean生成eclipse项目文件: mvn eclipse:eclipse
清除idea系统设置:mvn idea:clean生成idea项目:mvn idea:idea
离线打包: mvn package -o下载项目里所依赖的jar包的源码:mvn dependency:sources
二: 配置文件
setting.xml:
pom.xml:本地pom文件
pom-4.0.0.xml :超级pom文件
文件地址apache-maven-2.2.1\lib\maven-2.2.1-uber\org\apache\maven\project\pom-4.0.0.xmlapache-maven-2.2.1\conf\setting.xml
maven坐标是通过一些元素定义的,而classifier是不能直接定义的。(1).groupId,定义当前maven项目隶属的实际项目。(2).artifactId,定义实际项目中的一个maven项目(模块)(3).version,定义maven当前所处的版本。(4).packaging,定义maven项目的打包方式。
maven依赖调解的两个原则。第一原则是:路径最近者优先。第二原则是:第一声明者优先。
三:profile配置
Profile 的作用是允许你在项目文件(pom.xml)里定义若干个 profile 段,然后在编译时选择其中的一个用于覆盖项目文件原先的定义。在编译项目时,可以使用 -P 参数指定需要使用的 profile 的 id,假如不指定 -P 参数的话,则会使用 activeByDefault=true 的一项。
filtering替换:filtering功能主要用来替换项目中的资源文件(.xml、.properties)当中的${...}
spring的property-placeholder替换:指spring容器执行后替换资源文件(*.xml)当中的${...}
四:maven 与仓库
一:仓库分类:1.本地仓库:2.远程仓库:中央仓库 私服 其它公共库3.中央仓库id=central,可以被盖;
二:nexus仓库实现:nexus的仓库类型分为以下四种:1.group: 仓库组 --虚库:组合其它仓库2.hosted:宿主 --Releases Snapshots3.proxy:代理 --代理远程公共仓库http://repo1.maven.org/maven24.virtual:虚拟 --虚库:link到其实(非group)仓库
nexus内置仓库
Public Repositories:将其它仓库聚合并通过一致的地址提供服务
Central: 用来代理maven中央仓库中发布版本构件的仓库
Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
五:插件
一:常用插件:
1.maven-surefire-plugin 与 testNGtestNG 比JUnit 的优势:支持测试组
使用方式@Test(groups={"util","midium"})
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.20</version><configuration><groups>util,midium</groups></configuration></plugin>
官方使用说明:http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html2.versions-maven-pluginhttp://www.mojohaus.org/versions-maven-plugin/examples/use-releases.html
二.自定义插件:
统计代码行:maven-loc-plugin: https://github.com/lesline/maven-loc-plugin替换pom内容: maven-loc-plugin: https://github.com/lesline/maven-pom-plugin
使用命令:mvn com.juvenxu.mvnbook:maven-loc-plugin:0.0.1-SNAPSHOT:countmvn com.eloancn:maven-pom-plugin:0.0.5:release
可选方案:
1、dependencyManagement 中 加dependency时 type=import ,可以引入相同的配置2、mvn clean deploy -pl center-acct-api:只deploy center-acct-api3、maven-surefire-plugin 与 testNG
作者:lesline链接://www.greatytc.com/p/50f3f153b3d6來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。