这是新工程的pom文件,注意这样的配置只能加载一些基础的插件,具体加载的插件如下:
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.example.demo.DemoApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
是不包含 springboot-web 和 springboot-tomcat的,是需要自己进行加载的,这里需要注意。
由于我们的项目是父级项目下包含了两个模块项目,则在dependencyManagement配置的属于父级项目下的顶层 pom ,后续的子工程在工程下的 pom 文件中,配置对应的包的时候,可以不用写版本号了,但是在父项目中是不会直接导入 dependencyManagement 中的包的,仅在在子项目中有对应包的时候才导入。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mp.version}</version>
</dependency>
<!--模板引擎 代码自动生成-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-java.version}</version>
</dependency>
<!--mybatis-plus自动代码生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mp.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
在项目名处,右键选择 Module 点击,配置好 SDK 即 JDK版本 点击下一步
然后就创建成功了,这里需要注意一个问题,Idea这里每当你创建一个新的 Maven 工程,它会自动让Maven的设置重置,【可能我未设置,不过我感觉应该设置不了一直不变】,由于重置了 Maven 可能导致某些插件下载不了,比如会有 Cannot resolve … maven-clean-2.* 这些的问题,由于本项目为父项目下的子模块,推荐Maven 仓库 和 父项目同一个文件夹。 这样的问题是您需要在 setting—>Maven 即重新配置本地Maven 进行项目插件管理,然后在 子项目 右键鼠标,选择 Maven–>Reload project 即可解决问题。
<artifactId>demo-web</artifactId>
<dependencies>
<!--controller层-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 版本不用自己加了 -->
<!-- <version> 2.3.7.RELEASE</version>-->
</dependency>
<!--controller层-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<!-- <version>3.4.0</version>-->
</dependency>
<!--mybatis 自动代码生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<!-- <version>3.4.0</version>-->
</dependency>
<!--代码生成的模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<!--java 连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!--lombok简化getter 和 setter-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
然后再次选择 Maven中的 reload project 引入插件
然后该pom 引入的jar 包,由于上面配置了 Maven仓库和父项目一致,所以这个时候在父级External Libraries下发现新引入的包
在子模块 src 下创建下面的包和项目
DemoApplication 代码
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class,args);
}
}
然后 run 发现 Spring Boot 成功发布,则说明环境没问题,不过,
会有以下的异常,这明显是由于数据库的原因导致的,即我们项目中未配置数据库相关的内容,主要是
后面给了改善建议,则这里我们进行配置数据库就行了,这个主要是由于 nested exception is org.springframework.boot.autoconfigure.jdbc 引出的异常。
resources 文件夹下建立 application.yml 文件
spring:
application:
name: demo-web
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: root
password: 1123(这里是你的数据库密码)