Maven 的官网是 maven.apache.org。
为了方便地组织源码文件,第三方包的导入,以及项目配置文件,数据文件,免去繁琐的手工整理,可以使用Maven来组织项目。Maven就是是专门为Java项目打造的管理和构建工具,它的主要功能有:
- 提供了一套标准化的项目结构;
- 提供了一套标准化的构建流程(编译,测试,打包,发布……);
- 提供了一套依赖管理机制。
添加 maven 仓库镜像,加速下载
maven 配置文件在主目录的相对路径:\lib\maven3\conf**settings.xml** 。如果是 idea 自带的 maven,就在这里:C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.3\plugins\maven\lib\maven3\conf\settings.xml
在 settings.xml 中的
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>nexus-163</id>
<mirrorOf>*</mirrorOf>
<name>Nexus 163</name>
<url>https://mirrors.163.com/maven/repository/maven-public/</url>
</mirror>
<mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
Maven项目结构
一个使用Maven管理的普通的Java项目,它的目录结构默认如下:
a-maven-project
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
└── target
项目的根目录a-maven-project是项目名,它有一个项目描述文件pom.xml,存放Java源码的目录是src/main/java,存放资源文件的目录是src/main/resources,存放测试源码的目录是src/test/java,存放测试资源的目录是src/test/resources,最后,所有编译、打包生成的文件都放在target目录里。这些就是一个Maven项目的标准目录结构。
所有的目录结构都是约定好的标准结构,我们千万不要随意修改目录结构。使用标准结构不需要做任何配置,Maven就可以正常使用。
我们再来看最关键的一个项目描述文件pom.xml,它的内容长得像下面:
<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>
其中,groupId
类似于Java的包名,通常是公司或组织名称, artifactId
类似于Java的类名,通常是项目名称,再加上 version
,一个 Maven 工程就是由 groupId
,artifactId
和 version
作为唯一标识。我们在引用其他第三方库的时候,也是通过这3个变量确定。例如,依赖 commons-logging
:
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
使用 <dependency>
声明一个依赖后,Maven就会自动下载这个依赖包并把它放到classpath中。
参考资源
https://blog.csdn.net/weixin_40861707/article/details/81086825,maven的使用和爬过的坑;
https://blog.csdn.net/weixin_40861707/article/details/90106485,使用idea将普通项目转换为maven项目(超详细);