使用maven构建一个Spring Boot项目
2018-03-14 13:37
906 查看
1、使用Spring Boot
通常,让你的项目中的Maven POM文件继承 spring-boot-starter-parent 模块即可,具体使用通过声明一个或多个 Starter POMs 依赖。Spring Boot也提供了一个可选的 Maven Plugin 来创建可执行的jars。具体代码如下:<?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>2.0.0.RELEASE</version> </parent> <groupId>com.springboot</groupId> <artifactId>infrastructure</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- spring boot --> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
需要注意的是,继承 spring-boot-starter-parent 模块是一个非常好的使用方式,但并不适用于所有情况。这时你需要继承其他的POM,或者你不喜欢默认的设置时。
我在上面使用的是最新的2.0版本,它要求JDK版本最低为1.8(如果JDK是更低的版本,自行降低Spring Boot版本即可),Maven版本为3.2以上。
2、创建Spring Boot项目
创建工具:maven、jdk2.1、创建步骤:
新建项目文件夹:infrastructure;新建一个pom.xml文件。
pom文件内容如下:
<?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>2.0.0.RELEASE</version> </parent> <groupId>com.springboot</groupId> <artifactId>infrastructure</artifactId> <version>1.0-SNAPSHOT</version> </project>
这里面没有添加任何依赖,只继承了 spring-boot-starter-parent 模块,并且没有其他的代码文件等,但是它已经是一个Spring Boot项目,可以通过maven命令build并查看结果。
打开dos窗口,进入到项目路径:
命令行:mvn package
到这里,基本上已经算是创建了一个Spring Boot项目了。接下来需要做的是在项目中添加依赖包,并根据默认路径创建项目文件架构,最后才是写代码。
2.2、添加依赖
由于我们已经继承了 spring-boot-starter-parent ,而 spring-boot-starter-parent 又提供了 dependency-management ,所以我们可以忽略被选中依赖的版本。在添加依赖之前,我们先看一下现在已有什么:mvn dependency:tree。该命令会打印一个当前项目的依赖树。
结果表明,当前没有任何依赖。
现在我们给项目添加以下依赖:
<!-- spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- spring boot -->
再次查看一下依赖树,发现有了这么多:
可以看出,spring-boot-starter-web 包含了很多内容,spring-webmvc、spring-web、jackson、validation、tomcat、starter。
2.3、编码并启动、打包项目
Maven默认编译路径为 src/main/java 下面的源码,所以,默认设置下,需要创建这些文件夹。然后,编写文件 src/main/java/SampleController.java:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!============"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } }
在这里,我们只需要关心 @EnableAutoConfiguration 这个注解,它提供了一系列的默认自动配置,遵循我们平常的习惯约定。如果你的习惯跟它默认的配置一致,那么你几乎不需要任何的额外配置,当然,手动配置的情况总是不可避免的。这个注解包含了以下注解,这里不作深入讨论:
运行maven命令:mvn spring-boot:run
一开始我出现了以上错误,猜测:我在依赖中添加了JDBC模块,它自动配置数据源时出现错误;解决方法:
1、应该把下图红框中那个依赖去掉:
2、通过声明,移除datasource:
启动之后就可以访问了,默认地址: http://127.0.0.1:8080
打包项目:使用maven命令打包。并且需要使用Spring Boot提供的 spring-boot-maven-plugin:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
打包命令:mvn package
相关文章推荐
- [置顶] 使用maven创建一个spring-boot项目-集成springmvc
- Maven快速使用教程(二) spring boot 项目构建
- 使用maven创建一个spring-boot项目-集成springmvc
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
- 快速使用 maven 构建一个 spring web 项目
- 使用spring boot快速构建spring框架的maven项目
- 使用IDEA和Maven搭建一个Spring Boot项目
- 快速使用 maven 构建一个 spring web 项目
- 使用命令构建(Maven)Spring Boot项目
- Maven快速使用教程(二) spring boot 项目构建
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
- Maven构建一个最简单的Spring Boot + Spring MVC项目
- springboot+maven快速构建项目
- 使用eclipse构建Maven项目及发布一个Maven项目
- Maven构建一个多模块的Spring Boot + Spring MVC项目,完全基于java config
- 使用Maven构建Web项目+Spring+Mybatis配置
- 新手用STS(Spring Tool Suite)和Maven构建一个SpringMVC项目
- 本示例项目是采用spring+mybatis+maven构建,方便以后项目直接拿来使用
- 使用maven命令终端构建一个web项目及发布该项目