坐标(用来定位工程)
公司或组织域名+项目名
<groupid>com.atguigu.maven</groupid>
模块名
<artifactid>Hello</artifactid>
版本
<version>1.0.0</version>
这个版本默认会带着SNAPSHOT(这是快照的意思-快照在下边有说)
父POM
父(Super)POM是 Maven 默认的 POM。所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要下载 POM 中的 依赖时,它会到 Super POM 中配置的默认仓库去下载。
仓库
1分类:
本地仓库:当前电脑上仓库
远程仓库:
私服:局域网环境,为局域网内所有maven工程服务
中央仓库:在internet上,为世界所有maven工程服务
中央仓库镜像: 在各大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快相应用户请求
设置仓库的路径在本地安装maven中的setting.xml文件中
2.仓库保存的内容
1.maven自身所需要的插件
2.第三方框架或工具的jar包
3.自己开发的maven工程
生命周期
1.各个构建环节执行的顺序
1.清理 :将以前编译得到的旧字节码文件删除
2.编译 :将java源程序编译为class字节码文件
3.测试:自动测试,自动调用junit程序
4.报告:测试程序执行的结果
5.打包:动态Web工程打war包,java工程打jar包
6.安装:maven特定的概念-将打包得到的文件复制到“仓库”中的指定位置
7.部署:将动态web工程生成的war包复制到servlet容器的指定目录下,使其可以运行
2.为完成上述的生命周期,所以maven有了以下三个标准的声明周期
clean:项目清理的处理
default/build: 项目部署的处理
site:项目站点文档创建的处理
快照
在原来版本的情况下,data-service团队每次发布更新代码都需要重新打版本,放到仓库中,并告知开发团队,此时所有开发团队则要实时更改pom文件中对应的版本,这样才能保证下载的jar包为最新版。
快照则是一种特殊的版本,data-service团队发布更新,开发团队会自动获取最新的jar包来代替旧的jar包
我们使用快照的一个方式就是 -U 参数强制使用最新的jar包进行构建
Profiles配置文件
<profile>
<id>central</id>
<repositories>
<repository>
<id>central</id>
<name>Central</name>
<url>http://192.168.22.50:8081/nexus/content/groups/dynamic-public </url>
</repository>
<repository>
<id>snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central</name>
<url>http://192.168.22.50:8081/nexus/content/groups/dynamic-public</url>
</pluginRepository>
</pluginRepositories>
</profile>
id 区分了不同的 执行不同的任务
命令: mvn test -Ptest
第一个 test 为 Maven 生命周期阶段,第 2 个 test 为构建配置文件指定的 id 参数,这个参数通过 -P
来传输,当然,它可以是 prod 或者 dev这些由你定义的 id。