mvn标签
第一位标示大版本号
第二位标示分支版本号
第三位标示小版本号
0.01
snapshot快照
alpha内部测试
beta公测
Release稳定
GA正式发布
0.01snapshot
默认是jar
还可以是:war zip pom
scope的集中选择
1compile:默认范围,编译测试运行都有效
2provided:编译测试时都有效
3runtime:测试运行时有效
4test:只在测试时有效
5system:与本机系统相关联,可移植性差
6import:导入的范围,它只是用杂dependencyManagement中,标示从其他的pom中导入dependency的配置
设置以来是否可选,true标示可以从父亲那继承得到,false表示需要显示的声明
排除依赖传递列表
依赖管理,用在父pom文件中,该配置在运行时不起作用,当子pom文件能拿到这些依赖,子pom文件配置依赖的时候不需要写version,一般父pom文件的
插件列表
定义一些配置,比如环境变量等
如果maven中发现了连个相同的jar包,版本不同
最短路径优先
先声明优先
maven几个阶段
mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 删除target目录
mvn install 安装jar包到本地仓库
将maven_home\bin配置到path路径下,在maven项目目录下运行mvn dependency:tree可查看jar包依赖树
mvn archetype:generate 生成mvn项目骨架
mvn archetype:generate -Dgroupid= xxx -DartifactId=xxx -Dversion=xxx -Dpackage=xxx
-src
-main
-java
-package
-test
-java
-package
仓库
本地仓库 在maven安装目录下的conf/setting.xml 中配置
中央仓库 在maven_home/lib/maven-model-builder-3.3.9.jar 里面有个org/apache/maven/model/pom-4.0.0.xml文件,它定义了maven的中央仓库
有时候仓库在 国外,或者由于某种原因访问不到,可以为该参考设置镜像,那么以后访问的时候就访问镜像仓库地址
镜像
一般用阿里云的镜像
激活profile
如果有两个profile处于激活转态,那使用mvn compile的时候 会用哪个profile呢,答案是会使用定义靠后的那个,比如,repo2和osc,两个都处于激活转态,因此mvn编译的时候选用定义靠后的那个
maven 下载依赖的源代码
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
maven 配置conf.xml 模板
d:\\.m2\\repository
releases
username
password
sf-nexus-releases
username
password
snapshots
username
password
sf-nexus-repos
true
nexus
http://nexus.sf-express.com/nexus/content/groups/public/
true
true
nexus
http://nexus.sf-express.com/nexus/content/groups/public/
true
true
repo2
false
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
jdk18
true
1.8
1.8
1.8
1.8
UTF-8
UTF-8
UTF-8
repo2
sf-nexus-repos