创建简单maven

创建好一个简单的maven项目后加入SpringBoot相关的依赖,分别为spring-boot-starter-webspring-boot-starter-test ;

1
2
3
4
5
6
7
8
9
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

还有个父依赖spring-boot-starter-parent

1
2
3
4
5
6
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version><!-- SPringBoot版本 -->
<relativePath/> <!-- lookup parent from repository -->
</parent>

当创建好maven项目后主要加入的就是以上者三个东西,一个SpringBoot就成了。

目录结构

1
2
3
4
5
6
7
├─main
│ ├─java
│ │ └─top
│ │ └─wange
│ └─resources
└─test
└─java

添加启动类

1
2
3
4
5
6
7
8
9
10
11
12
package top.wange;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Hello {
public static void main(String[] args) {
SpringApplication.run(Hello.class,args);
}
}

完整的pom. xml

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version><!-- SPringBoot版本 -->
<relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>top.wange</groupId><!--组id-->
<artifactId>fileUpDown</artifactId><!--组件名称-->
<version>0.0.1-SNAPSHOT</version><!-- 组件版本 -->
<name>fileUpDown</name><!--项目名称-->

<description>fileUpDown</description><!-- -->

<properties>
<java.version>1.8</java.version><!-- Java版本 -->
</properties>
<dependencies><!--依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

</project>

对文件各个元素进行解析

这是一个Maven项目的标准POM文件(Project Object Model),用于描述项目的基本信息、依赖项和构建设置。让我来解释每行的作用:

  • XML声明:指定XML版本和字符编码。
1
<?xml version="1.0" encoding="UTF-8"?>
  • project元素:定义了POM文件的根元素。
    • xmlns:XML命名空间,指定Maven POM的XML命名空间。
    • xmlns:xsixsi:schemaLocation:用于指定XML模式实例的命名空间和模式位置,确保符合Maven POM的XML架构。
      1
      2
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  • modelVersion:指定POM模型的版本,通常为4.0.0。
1
<modelVersion>4.0.0</modelVersion>
  • parent元素:指定了当前项目的父项目,继承自Spring Boot的starter parent。

    • groupIdartifactIdversion:指定了父项目的坐标和版本。
    • <relativePath>:留空,表示从Maven仓库中查找父项目。
      1
      2
      3
      4
      5
      6
      <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.3.9.RELEASE</version><!-- SPringBoot版本 -->
      <relativePath/> <!-- lookup parent from repository -->
      </parent>
  • groupId:项目的唯一标识符,这里是 top.wange

  • artifactId:项目的唯一ID,这里是 fileUpDown,用于构建输出的文件名。

  • version:项目的版本号,这里是 0.0.1-SNAPSHOT,表示开发阶段的初始版本。

  • name:项目的显示名称,这里是 fileUpDown

  • description:项目的描述信息,这里也是 fileUpDown

  • properties:定义项目中使用的属性。

    • <java.version>:指定Java的版本,这里是 1.8
1
2
3
4
5
6
7
8
9
10
<groupId>top.wange</groupId><!--组id-->
<artifactId>fileUpDown</artifactId><!--组件名称-->
<version>0.0.1-SNAPSHOT</version><!-- 组件版本 -->
<name>fileUpDown</name><!--项目名称-->

<description>fileUpDown</description><!-- -->

<properties>
<java.version>1.8</java.version><!-- Java版本 -->
</properties>
  • dependencies:定义项目所依赖的库和框架。
    • 第一个 <dependency>:引入了Spring Boot Web starter,用于开发Web应用。
    • 第二个 <dependency>:引入了Lombok,作为开发工具(可选依赖)。
    • 第三个 <dependency>:引入了Spring Boot测试模块,用于单元测试(作用域为test)。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      <dependencies>
      <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
      </dependency>
      <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      </dependency>
      </dependencies>
  • build:定义项目的构建配置。
    • plugins:定义Maven插件列表。
      • <plugin>:指定一个Maven插件。
        • <groupId><artifactId>:指定插件的坐标。
        • <configuration>:配置插件的具体参数。
          • <excludes>:排除指定的依赖。
            • <exclude>:具体要排除的依赖项。
              • <groupId><artifactId>:指定要排除的依赖坐标。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

这个POM文件描述了一个基于Spring Boot的Java项目,用于文件上传和下载,依赖Spring Boot Web和Lombok,同时配置了Maven构建插件。