创建简单maven
创建好一个简单的maven项目后加入SpringBoot相关的依赖,分别为spring-boot-starter-web和spring-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> <relativePath/> </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> <relativePath/> </parent>
<groupId>top.wange</groupId> <artifactId>fileUpDown</artifactId> <version>0.0.1-SNAPSHOT</version> <name>fileUpDown</name>
<description>fileUpDown</description>
<properties> <java.version>1.8</java.version> </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),用于描述项目的基本信息、依赖项和构建设置。让我来解释每行的作用:
1
| <?xml version="1.0" encoding="UTF-8"?>
|
- project元素:定义了POM文件的根元素。
xmlns:XML命名空间,指定Maven POM的XML命名空间。
xmlns:xsi 和 xsi: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。
groupId、artifactId、version:指定了父项目的坐标和版本。
<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> <relativePath/> </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> <artifactId>fileUpDown</artifactId> <version>0.0.1-SNAPSHOT</version> <name>fileUpDown</name>
<description>fileUpDown</description>
<properties> <java.version>1.8</java.version> </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构建插件。