Maven配置

Maven

零 Maven介绍

Maven 是一个用于 Java 项目的构建管理工具

0x01 主要作用

  1. 项目构建管理
    • Maven 提供了一个标准化的方式来构建项目,可以自动处理编译、测试、打包和部署等过程。开发者只需编写简单的配置文件(pom.xml),Maven 就会根据配置执行相应的构建步骤。
  2. 依赖管理
    • Maven 可以自动管理项目所需的库和框架的版本及其依赖关系。通过在 pom.xml 文件中声明依赖,Maven 会自动下载所需的 JAR 文件并将其添加到构建路径中,解决了手动管理库的麻烦。
  3. 统一的项目结构
    • Maven 提倡使用统一的项目结构,使得不同的 Maven 项目之间具有一致性。这种标准化简化了新开发者的入门学习曲线,增强了团队协作。
  4. 多模块项目支持
    • Maven 支持多模块项目,可以将大型应用程序分为多个模块,每个模块都有自己的构建和依赖配置,最终可以汇总为一个完整的应用。
  5. 生命周期管理
    • Maven 定义了一个项目的生命周期,包含多个阶段,如 validatecompiletestpackageinstalldeploy。开发者可以通过执行不同的生命周期阶段,快速完成特定的任务。
  6. 插件支持
    • Maven 有大量的插件可以扩展其功能,例如代码质量检查、测试覆盖率、文档生成等。开发者可以根据需求选择适合的插件,提高项目的构建和管理效率

0x02 Maven 的基本概念

  • POM(Project Object Model)
    • POM 文件是 Maven 的核心配置文件,通常命名为 pom.xml。它描述了项目的基本信息、依赖、构建设置和插件等。
  • 依赖
    • Maven 使用中央 Maven 仓库来存储和分发各种开源库和框架。开发者可以在 pom.xml 中指定项目所需的依赖,Maven 会自动下载并管理它们。
  • 仓库
    • Maven 使用本地和远程仓库来存储项目依赖和构建产物。默认情况下,本地仓库位于用户的主目录下。

0x03 小结

Maven 作为一个强大的构建管理工具,极大地简化了 Java 项目的构建和依赖管理过程。它通过标准化项目结构和提供自动化的构建流程,帮助开发者提高开发效率,并确保项目的可维护性。无论是在个人项目还是团队开发中,Maven 都是一个不可或缺的工具

一 Maven 安装

0x01 安装

https://maven.apache.org/download.cgi

选择 Binary zip archive zip

创建一个文件夹maven-repository用来充当本地仓库

1
2
3
4
5
6
Maven
├── apache-maven-3.9.9
│ └── conf
└── maven-repository
├──
└──

0x02 配置环境变量

系统环境变量

新建一个MAVEN_HOME,添加Maven的路径

1
2
MAVEN_HOME
G:\Environment\Maven\apache-maven-3.9.9

添加PATH

1
%MAVEN_HOME%\bin

测试一下

1
2
3
4
5
6
⚡Lenovo ❯❯ mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: G:\Environment\Maven\apache-maven-3.9.9
Java version: 18.0.2.1, vendor: Oracle Corporation, runtime: G:\JDK\jdk18
Default locale: zh_CN, platform encoding: UTF-8
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"

0x03 更改Maven中的设置

1.编辑settings.xml

打开安装目录 ..\apache-maven-3.9.9\conf 下的settings.xml文件

settings标签的后面找到localRepository的位置,在下面添加以下代码以更改本地仓库的位置

1
<localRepository>G:/Environment/Maven/maven-repository</localRepository>

2.更换默认更新源

找到 标签

阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定

1
2
3
4
5
6
<mirror> 
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

3.添加JDK的版本

找到 标签,在里面添加以下代码,配置JDK的版本,要与安装的版本对应(这里用的jdk18)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>

4. 完整版

删去了注释内容 但是不确定缺少几个配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>G:/Environment/Maven/maven-repository</localRepository>

<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>

<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>

<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>

</settings>

二 IJ配置使用Maven

0x01 开新项目

创建一个空项目

打开设置找到Maven,设置Maven主路径、用户设置文件、本地仓库的地址

进到Maven导入(importing)设置,在导入程序的虚拟机选项中添加

1
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true 

这里设置的忽略SSL证书验证,防止连不到阿里云的服务器无法自动下载依赖,而出现找不到依赖的错误

0x02 创建模块

文件 => 新建 => 模块…

我这个版本没有找到Maven的独立模块创建 但是选择Java模块后 构建系统选择Maven

JDK 选跟setting.xml里面选的一致的版本

下一步

填写模块名称和工件坐标,点击完成即可

( 如果添加了本地仓库没有的依赖文件,会提示找不到依赖,当加载变更刷新后,IDEA会自动从远程仓库下载依赖到本地,错误信息就会消失 )

三 测试

0x01 path补充

在pom.xml中添加依赖

1
2
3
4
5
6
7
8
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

0x02 新建类

在src\main\java目录下新建一个类 hello.java 和 HelloTest.java

hello.java

1
2
3
4
5
6
7
8
package com.sf.maven;

public class hello {
public String sayHello(String name) {
return "Hello " + name + "!";
}

}

HelloTest.java

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.sf.maven;

import org.junit.Test;

public class HelloTest {
@Test
public void testHello() {
hello hello = new hello();
String maven = hello.sayHello("Maven");
System.out.println(maven);
}

}

emm 如果识别不到Test 就去pom.xml 把 <scope>test</scope> 删了

  • 移除 scope 属性后,JUnit 将被视为编译时依赖:这意味着 JUnit 会在编译和运行时都可用

运行成功