maven命令用法 版本管理 安装和发布组件
- 2016-03-26 14:30:00
- admin
- 原创 2726
一、maven命令用法
mvn -v,查看安装信息;
mvn [options] [<goal(s)>] [<phase(s)>],执行目标或生命周期阶段;
goal:目标是一个具体执行动作,一个插件可以包含多个目标;
phase:阶段通常绑定零到多个目标,执行阶段其实是执行关联的目标;
生命周期:
1、内置生命周期:default构建项目,clean清理项目,site构建项目文档;
2、每个生命周期包括多个生命周期阶段;
插件:
1、插件可以有一个或多个目标,阶段可以绑定默认目标;
2、pom插件的目标顺序执行,然后每个插件继承的目标执行;
仓库和镜像:
1、仓库是真正存储组件文件的位置,镜像一般是为了加速或缓减仓库压力;
2、配置mirrorOf不要配置*,这样镜像会拦截所有仓库请求,一般配置central拦截中央仓库请求;
配置文档:
中央仓库:https://mvnrepository.com
pom配置:http://maven.apache.org/pom.html
settings配置:http://maven.apache.org/settings.html
lifecycle详解:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
toolchains配置:https://maven.apache.org/guides/mini/guide-using-toolchains.html
代理配置:http://maven.apache.org/guides/mini/guide-proxies.html
常见问题:
1、eclipse报错-Dmaven.multiModuleProjectDirectory system propery is not set:
配置环境变量M2_HOME=D:\apache-maven-3.3.9
点击Window->Preference->Java->Installed JREs->Edit
配置Default VM arguments:-Dmaven.multiModuleProjectDirectory=$M2_HOME
2、Missing artifact问题:删除依赖库的lastUpdated文件,重新update工程;
二、版本管理
1、版本号规范:https://maven.apache.org/pom.html#Dependencies
2、版本号格式是X.Y.Z,X是主版本号Major,Y是次版本号Minor,Z是补丁版本Patch;
3、不同主版本号相互不兼容,但是同一主版本号,不同次版本号相互兼容;
4、0.X.Y表示初始版本,可以认为是不稳定版本,1.X.Y是第一个稳定版本;
5、预发布版本X.Y.Z-token[num]:alpha < beta < milestone < rc = cr < snapshot < "" = final = ga < sp;
6、比较版本:java -jar %M2_HOME%\lib\maven-artifact-3.6.2.jar 1.0.0-alpha 1.0.0-beta;
7、配置依赖:1.0、[1.0,2.0)、[1.0,2.0],如果是区间会自动找到区间内最新版本;
8、依赖传递以第一个申明的版本为准,除非pom文件重新申明版本;
9、强制切换版本:version (omitted for conflict with newver),被动切换版本:newver (managed from version);
10、下载依赖源码:mvn dependency:resolve -Dclassifier=source,mvn dependency:resolve-sources
11、下载依赖文档:mvn dependency:resolve -Dclassifier=javadoc
12、查看依赖:mvn dependency:list,mvn dependency:tree
三、安装和发布组件
注意:安装组件和发布组件相互独立。
安装组件到本地:
mvn install:install-file -Dfile=guomi.jar -DgroupId=company -DartifactId=guomi -Dversion=0.0.1 -Dpackaging=jar
发布组件到仓库:
mvn deploy:deploy-file -Dfile=guomi.jar -DgroupId=company -DartifactId=guomi -Dversion=0.0.1 -Dpackaging=jar \
-DrepositoryId=release -Durl=releaseUrl