mvn整理

一:常用命令:

清空:mvn clean
编译:mvn compile
打包:mvn package
打包并安装到本地仓库: mvn install
打包并部署到远程仓库: mvn deploy

只打包不测试:mvn -Dtest package
mvn -Dmaven.test.skip=true package
snapshots包强制更新: 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

二: 配置文件

  1. setting.xml:
  2. pom.xml:本地pom文件
  3. pom-4.0.0.xml :超级pom文件

三者关系:
setting.xml中的repositories用于下载
pom.xml中的用于上传,上传用到的用户名和密码要保存在setting.xml中
setting.xml和pom.xml中的central可以覆盖超级pom文件

文件地址
apache-maven-2.2.1\lib\maven-2.2.1-uber\org\apache\maven\project\pom-4.0.0.xml
apache-maven-2.2.1\conf\setting.xml

maven坐标是通过一些元素定义的,而classifier是不能直接定义的。
(1).groupId,定义当前maven项目隶属的实际项目。
(2).artifactId,定义实际项目中的一个maven项目(模块)
(3).version,定义maven当前所处的版本。
(4).packaging,定义maven项目的打包方式。
其中:依赖范围:


mvn整理_第1张图片
packaging.png

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 Snapshots
3.proxy:代理 --代理远程公共仓库http://repo1.maven.org/maven2
4.virtual:虚拟 --虚库:link到其实(非group)仓库

nexus内置仓库

  • Public Repositories:将其它仓库聚合并通过一致的地址提供服务
  • Central: 用来代理maven中央仓库中发布版本构件的仓库
  • Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
  • Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库

五:插件

一:常用插件:

1.maven-surefire-plugin 与 testNG
testNG 比JUnit 的优势:支持测试组

使用方式
@Test(groups={"util","midium"})

org.apache.maven.plugins
maven-surefire-plugin
2.20

util,midium

官方使用说明:
http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html
2.versions-maven-plugin
http://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:count
mvn 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-api
3、maven-surefire-plugin 与 testNG

附件

http://tengj.top/2018/01/01/maven/

你可能感兴趣的:(mvn整理)