上一篇讲了使用spirngboot 自带的构建器构建项目 本篇来讲一讲如何从零开始构建一个
maven
项目
前提: jdk 推荐 java17及以上 maven 推荐 Maven 3.5+
(maven构建)
一、 安装maven
Maven
的安装需要依赖JDK
的安装,所以必须先安装完成JDK
且配置好JDK
环境变量后在进行Maven
的安装。
1. <font color='red'>下载</font>
官网下载:
最新版:
历史版本:
点击上面的 ‘Maven 3 archives’在这个里边找自己需要的版本
下载完了之后解压缩 然后将Maven的bin目录添加到环境变量中。
输入mvn -v命令,如果能够输出Maven的版本信息如下图,则说明安装成功。
2. <font color='green'>settings.xml</font>
安装完毕之后 配置settings.xml
-
设置Maven本地仓库路径:在settings.xml文件中修改localRepository节点 如下图:
-
添加国内镜像源:在settings.xml文件中修改mirrors节点 如下图:
上文添加的是阿里云中央仓库的镜像 可以根据自己的需要自行加镜像
-
修改Maven默认的JDK版本:在settings.xml文件中profiles节点之间添加jdk版本 如下图:
<hr>
二、 构建maven项目
2.1 创建项目
上述的准备工作做完了之后开始创建 maven
项目 。
点击 ‘create new project’ 选择maven项目 然后一路next 起个项目名点击完成即可。
2.2 配置maven
打开项目之后配置maven
配置maven(File | Settings | Build, Execution, Deployment | Build Tools | Maven )
配置 maven路径 使用的配置文件还有本地仓库的位置 这三项 如下图:
2.3 <font color='purple'> pom.xml </font>
在打开的项目下面创建一个简单的子目录结构 如下:
└── src └── main └── java └── demo
在项目根目录下的pom.xml文件添加如下内容
<?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 http://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>3.1.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.example</groupId>
<artifactId>mavenDemo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mavenDemo</name>
<description>Maven Demo project for Spring Boot</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<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>
</dependencies>
<build>
<plugins>
<!-- SpringBoot 自带的打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- MAVEN 打包-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-shade-plugin</artifactId>-->
<!-- <version>3.2.4</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>shade</goal>-->
<!-- </goals>-->
<!-- <configuration>-->
<!-- <transformers>-->
<!-- <transformer-->
<!-- implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">-->
<!-- <mainClass>hello.HelloWorld</mainClass>-->
<!-- </transformer>-->
<!-- </transformers>-->
<!-- </configuration>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
</build>
</project>
modelVersion
:POM 模型版本(始终为 4.0.0)。
groupId
: 项目所属的组或组织。通常表现为倒置域名。
artifactId
: 项目名称(例如,其 JAR 或 WAR 文件的名称)。
version
: 正在构建的项目的版本。
packaging
: 项目应该如何打包。JAR 文件打包默认为“jar”。WAR文件打包使用“war”。
description
:项目描述 可写可不写
java.version
: 项目的jdk版本
SpringBoot 自带的打包插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
继承 Starter Parent POM
将项目配置为继承自spring-boot-starter-parent,parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0-SNAPSHOT</version>
</parent>
不从Parent 继承使用Spring Boot POM
可以通过使用import
范围依赖来保持依赖管理(但不是插件管理)的好处
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.1.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
自动重启 重新编译应用程序时检测到更改 Spring Boot应用可以自动重启
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
如果喜欢的话,欢迎 标签:Maven,--,Spring,boot,maven,Boot,spring,org From: https://blog.51cto.com/u_16111319/6835941