Maven构建
BioNote 2022-08-11
Java
# 基本概念
Maven就是是专门为Java项目打造的管理和构建工具,它的主要功能有:
- 提供了一套标准化的项目结构;
- 提供了一套标准化的构建流程(编译,测试,打包,发布……);
- 提供了一套依赖管理机制。
项目结构:
a-maven-project
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
└── target
其中根目录a-maven-project
是项目名,它有一个项目描述文件pom.xml
,存放源码的目录是src/main/java
,存放资源文件的目录是src/main/resources
,存放测试源码目录的是src/test/java
,存放测试资源的目录是src/test/resources
,最后,所有编译、打包生成的文件都放在target
目录里。
所有的目录结构都是约定好的,不需要做任何配置,也不要随意修改目录结构。
项目描述文件:
<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>com.itranswarp.learnjava</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
...
</properties>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- groupId: 类似Java的包名,通常是公司或者组织名称;
- artifactId: 类似Java的类名,通常是项目名称;
- vesion: 版本号
一个Maven工程就是由groupId,artifactID和version作为唯一标识。在引用其他第三方库的时候,也是通过这三个变量确定。例如示例中依赖的是
commons-logging
# 安装
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip && unzip apache-maven-3.8.6-bin.zip && rm -f unzip apache-maven-3.8.6-bin.zip
1
设置环境变量
M2_HOME=/path/to/maven-3.8.6
PATH=$PATH:$M2_HOME/bin
1
2
2
# 依赖管理
Maven的第一个作用就是解决依赖管理。我们声明了自己的项目需要abc,Maven会自动导入abc的jar包,再判断出abc需要xyz,又会自动导入xyz的jar包,这样,最终我们的项目会依赖abc和xyz两个jar包。
# 镜像仓库
中国区用户可以使用阿里云提供的Maven镜像仓库。使用Maven镜像仓库需要一个配置,在用户主目录下进入.m2目录,创建一个settings.xml配置文件,内容如下:
<settings>
<mirrors>
<mirror>
<id>aliyun</id>
<name>aliyun</name>
<mirrorOf>central</mirrorOf>
<!-- 国内推荐阿里云的Maven镜像 -->
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
</mirrors>
</settings>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 命令行编译
进入到pom.xml
所在目录,输入命令:
mvn clean package
1