maven命令用法 版本管理 安装和发布组件
- 2016-11-26 14:30:00
- admin
- 原创 2471
一、maven命令用法
mvn -v,查看安装信息;
mvn [options] [<goal(s)>] [<phase(s)>],执行目标或生命周期阶段;
goal:目标是一个具体执行动作,maven插件可以包含多个目标;
phase:阶段通常绑定零到多个目标,执行阶段其实是执行关联的目标;
生命周期:
1、内置生命周期:default构建项目,clean清理项目,site构建项目文档;
2、每个生命周期包括多个生命周期阶段;
插件:
1、插件可以有一个或多个目标,阶段可以绑定默认目标;
2、系统默认的目标最先执行,然后pom插件的目标顺序执行,最后每个插件继承的目标执行;
仓库和镜像:
1、仓库是真正存储组件文件的位置,镜像一般是为了加速或缓减仓库压力;
2、配置mirrorOf不要配置*,这样镜像会拦截所有仓库请求,一般配置central拦截中央仓库请求;
配置文档:
中央仓库:https://mvnrepository.com
settings配置:http://maven.apache.org/settings.html
pom配置:http://maven.apache.org/pom.html
lifecycle详解:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.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、版本号格式是X.Y.Z,X是主版本号Major,Y是次版本号Minor,Z是补丁版本Patch;
2、不同主版本号相互不兼容,同一主版本号,不同次版本号相互兼容;
3、0.X.Y表示初始版本,可以认为是不稳定版本,1.X.Y是第一个稳定版本;
4、预发布版本X.Y.Z-token[num]:alpha < beta < milestone < rc = cr < snapshot < "" = final = ga < sp;
5、比较版本:java -jar %M2_HOME%\lib\maven-artifact-3.6.2.jar 1.0.0-alpha 1.0.0-beta;
6、配置依赖:1.0、[1.0,2.0)、[1.0,2.0],如果是区间会自动找到区间内最新版本;
7、查看依赖:mvn dependency:tree;
8、依赖传递以第一个申明的版本为准,除非pom文件重新申明版本;
9、强制切换版本:version (omitted for conflict with newver),被动切换版本:newver (managed from version);
三、安装和发布组件
注意:安装组件和发布组件相互独立。
安装组件到本地:
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