安装到本地库
mvn install:install-file -DgroupId=com.go -DartifactId=com-lib -Dversion=1.0 -Dpackaging=jar -Dfile=/opt/src_path
- -Dfile(源路径) : 指定的是jar 的当前路径,不是打包后的目标路径
安装到私服
mvn deploy:deploy-file -DgroupId=com.go -DartifactId=com-lib -Dversion=1.0 -Dpackaging=jar -Dfile=[path to src file] -Durl=[url] -DrepositoryId=[id]
- 上传pom是一样的,只需要把 packaging值改为 pom 即可:
-Dpacckaging=pom
; - 如果version 是snapshot 版本,上传后对应的目录中 只有 类似
metadata.xml, ..md5
的文件,上传的具体文件 在以版本号(不含SNAPSHOT)为前缀,时间戳为后缀的文件夹中;每传一次一个时间戳;
手动下载jar
mvn dependency:get -DremoteRepositories=http://repo1.maven.org/maven2/ -DgroupId=junit -DartifactId=junit -Dversion=4.8.2
手动下载jar,报错
- 加参数 -e 报错:
Received fatal alert: protocol_version ....
; - 解决:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -Dhttps.protocols=TLSv1.2 -Dartifact=org.aspectj:aspectjweaver:1.9.1
手动下载 jar ,使用指定的插件版本
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=http://repo1.maven.org/maven2/ -Dartifact=junit:junit:4.8.2
使用maven-help-plugin描述插件,从而获得插件信息
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-resources-plugin:2.5
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-resources-plugin:2.5 -Ddetail=true
查看冲突 jar 包
- 例如,我的项目中notify-common包存在冲突,使用命令:
mvn dependency:tree -Dverbose -Dincludes=:notify-common
mvn dependency:tree -Dverbose
的一些疑惑项目说明
compile
就是编译成功的version managed from 1.2.3 ;omitted for duplicate
: 出现 version managed from 提示这个版本 在<dependencyManagement>
标签中声明了, 但没有使用 被别的版本覆盖了;
Effective Pom
- Effective Pom即最终起作用的Pom文件,maven最终裁决选中的所有依赖都会集中声明在该Pom文件中。
mvn help:effective-pom
;
effective-settings
mvn help:effective-settings
跳过测试
- cli:
-DskipTests
:不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。- 对应 pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
-Dmaven.test.skip=true
:不执行测试用例,也不编译测试用例类。- 对应 pom.xml
<plugin>
<groupId>org.apache.maven.plugin</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
常用命令集合
mvn --legacy-local-repository dependency:help
mvn help:help --offline
mvn help:help -X
mvn help:active-profiles --offline
mvn dependency:help
mvn dependency:list-repositories
mvn dependency:tree -Dverbose -Dincludes=*-tx*
mvn dependency:tree -Dverbose -Dincludes=*log4j*
mvn dependency:get -DremoteRepositories=http://xxxx/repository/maven-public/ -DgroupId=xxx -DartifactId=xxx -Dversion=xxx