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 中的 标签中间添加国内镜像:

  1. <mirror>
  2. <id>huaweicloud</id>
  3. <mirrorOf>*</mirrorOf>
  4. <url>https://mirrors.huaweicloud.com/repository/maven/</url>
  5. </mirror>
  6. <mirror>
  7. <id>aliyunmaven</id>
  8. <mirrorOf>*</mirrorOf>
  9. <name>阿里云公共仓库</name>
  10. <url>https://maven.aliyun.com/repository/public</url>
  11. </mirror>
  12. <mirror>
  13. <id>nexus-163</id>
  14. <mirrorOf>*</mirrorOf>
  15. <name>Nexus 163</name>
  16. <url>https://mirrors.163.com/maven/repository/maven-public/</url>
  17. </mirror>
  18. <mirror>
  19. <id>nexus-tencentyun</id>
  20. <mirrorOf>*</mirrorOf>
  21. <name>Nexus tencentyun</name>
  22. <url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
  23. </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,它的内容长得像下面:

  1. <project ...>
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.itranswarp.learnjava</groupId>
  4. <artifactId>hello</artifactId>
  5. <version>1.0</version>
  6. <packaging>jar</packaging>
  7. <properties>
  8. ...
  9. </properties>
  10. <dependencies>
  11. <dependency>
  12. <groupId>commons-logging</groupId>
  13. <artifactId>commons-logging</artifactId>
  14. <version>1.2</version>
  15. </dependency>
  16. </dependencies>
  17. </project>

其中,groupId 类似于Java的包名,通常是公司或组织名称, artifactId 类似于Java的类名,通常是项目名称,再加上 version,一个 Maven 工程就是由 groupIdartifactIdversion 作为唯一标识。我们在引用其他第三方库的时候,也是通过这3个变量确定。例如,依赖 commons-logging

  1. <dependencies>
  2. <dependency>
  3. <groupId>commons-logging</groupId>
  4. <artifactId>commons-logging</artifactId>
  5. <version>1.2</version>
  6. </dependency>
  7. </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项目(超详细);