本文已参与「新人创作礼」活动,一起开启掘金创作之路。
常用的 Maven 命令
执行与构建过程相关的 Maven 命令, 必须进入 pom.xml 文件所在的目录.
常用命令:
- `mvn compile 编译主程序
- mvn test 执行测试
- mvn test-compile 编译测试程序
mvn clean清理mvn package打包
-
- 指定环境打包
mvn package -P dev
- 指定环境打包
mvn install安装, 执行此命令可以把我们自己的程序放置在本地仓库.- mvn dependency:tree 查看依赖树, 解决依赖冲突问题.
- mvn dependency:tree --> tree.txt 导出依赖树到 txt 文件.
标准的 Maven 工程
标准的目录结构
这是 Maven 项目标准的目录结构:
Maven 要负责我们这个项目的自动化构建, 以编译为例, Maven 想要自动进行编译, 那么他必须知道 Java 源文件在哪里. 那么有两种办法:
- 以 xml 配置文件的方式告诉框架.
- 遵守框架内部已经存在的定义.
pom.xml
POM Project Object Model 项目对象模型.
- pom.xml 文件是 Maven 工程
最核心的配置文件, 构建过程相关的一切设置都在这个文件中. - pom.xml 包含了项目构建的信息, 包括项目的信息, 项目的依赖等.
- pom.xml 文件是可以继承的, 大型项目中, 子模块的 pom.xml 一般都会继承于父模块的 pom.xml.
Maven 的坐标
使用 gav 向量在 Maven 的仓库中唯一的确定一个 Maven 工程.
groupId:公司名倒序 + 项目名artifactId:当前项目的模块名- version : 当前模块的版本
举例 :
<project xxx>
<!-- 所有的 Maven 项目都必须配置这四个配置项 -->
<!-- 版本 -->
<modelVersion>4.0.0</modelVersion>
<!--groupId 公司名倒序 + 项目名-->
<groupId>it.sgy.pyg</groupId>
<!-- 当前项目的模块名 -->
<artifactId>order</artifactId>
<!-- 当前模块的版本 -->
<version>0.0.1-SNAPSHOT</version>
</project>
如何通过坐标找到 Maven 仓库中的 jar 包?
- 将 gav 三个向量连接起来. it.sgy.pyg + order + 0.0.1-SNAPSHOT
- 把连接起来的字符串作为目录结构, 到仓库中查找. it/sgy/pyg/order-0.0.1-SNAPSHOT.jar
注意: 我们自己的 Maven 工程必须执行安装操作才能进入仓库, 安装的命令是 : mvn install
Maven 仓库管理
Maven 仓库 : 用来统一存储所有 Maven 依赖的位置就是仓库.
Maven 仓库布局 : 根据 Maven 坐标定义每个构建在仓库中唯一存储路径:groupId/artifactId/version/artifactId-version.packaging
仓库中保存的内容 :
- Maven 自身需要的插件
- 第三方的框架或者工具的 jar 包
- 我们自己开发的 Maven 程序.
仓库的分类 :
- 本地仓库. 每个用户只有一个本地仓库, 默认是在 ~/.m2/repository/, ~代表的是用户目录.
- 远程仓库
中央仓库:Maven 默认的远程仓库, URL地址:mvnrepository.com/
中央仓库镜像 : 为了分担中央仓库的流量, 提升用户访问速度.
私服 : 搭建在局域网环境中, 为局域网范围内的所有的 Maven 工程服务.