介绍… 历史… 下载… 安装…
maven的配置文件:
最主要有settings.xml 存在于C:\Users\Administrator\.m2 和apache-maven-3.6.3\conf\settings.xml;且前者的优先级高于后者
和
pom-4.0.0.xml(又被称为超级pom)在maven-model-builder-3.6.3\org\apache\maven\model目录下;(传说中的约定优于配置,这个约定其实就是在这里配置的);
一、先来说settings.xml:
1.mirror:在settings.xml的<mirror>这里配置镜像 私服也可以在这里配置(私服配置方式一) <mirror>;
2. profile: 可以配置多种环境方便,根据不同情况打包即可(不用切换配置文件 )
3.
二、pom.xml
1、<groupId> 公司域名反转
2、<artifactId> 脚手架
3、<version> 版本号
a) 1.0-SNAPSHOT (代表不稳定版本)
当该不稳定版本被覆盖后(仓库中版本号没变)
怎么保证本地也是最新的
1、repository 删除,重新拉取
2、mvn clean package -U(强拉一次)
b)主版本号.次版本号.增量版本号-<里程碑版本>
例如: 1.0.0-RELAESE
4、<packaging> 打包方式
5、<description> 版权
5、<modules> 项目中的各个子模块
6、<properties> 定义父pom里的参数,像定义变量一样
7、<dependencyManagement> 只让出现在父pom里(声明jar包,子pom若要使用还需自己再引用,但是不用写版本号;统一版本号)
8、<dependency>
<type> 默认是jar
<scope> 默认是 compile 编译 也打包
test 测试
provided 编译 不打包 例如:sevlet(其包已经被含有了)
runtime 运行时 例如:MySQL(JDBC驱动实现) ,其接口被提供了(可编译)
system 本地一些jar(不在仓库里的) 例如 短信jar 自己可以添加到仓库 或者用system 然后加<systemPath>
9、依赖传递 jar包依赖是可以传递的(父包的父包可以引用到,一般都需要的尽量放在父包里,这样修改与切换相对便宜)
10、依赖仲裁
最短路径原则、加载先后原则(pom里的书写顺序)
11、批量修改版本号
用一个命令就可以了(versions-maven-plugin 插件命令)
12、<exclusions>【】
排除包(解决API冲突,也可以说是jar包冲突就是多个版本的jar包,同一个方法的实现差异较大,程序中调用该方法时无从选择问题)
13、声明周期: clean、default、set(只包括这三个lifecycle)
两句话概况:
A build lifecycle is made up of phases.
A build phase is made up of plugin goals.
14、常用命令
a) compile
b) clean 删除 target/
c) test test case junit/testNG
d) package 打包
e) install 把项目install到local Repo (模块修改后一定要install,不然有依赖该模块的依然是旧的jar包)
f) deploy 将本地jar发布到私服
15、插件
a)常用插件
i. https://maven.apache.org/plugins/
ii. http://www.mojohaus.org/plugins.html
常用插件(使用方法另查):
findbug 静态代码检查
versions 统一升级版本
source 打包源代码
assembly 打包插件(可以打各种包)
tomcat7(不用再下载tomcat了,以插件形式)
16自定义插件 https://maven.apache.org/guides/plugin/guide-java-plugin-development.html
17、profile
18、搭建maven仓库
http://books.sonatype.com/nexus-book/reference3/index.html
i. http://192.168.1.6:8081/nexus
ii. admin/admin123
19、archetype 模板化(搭建脚手架)