Maven的用途之一是服务于构建,它是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们不需要也不应该一遍又一遍地输入命令,一次又一次地点击鼠标,我们要做的是使用Maven配置好项目,然后输入简单的命令(如mvn clean install),Maven会帮我们处理那些烦琐的任务。
Maven是跨平台的,无论是在Windows上,还是在Linux或者Mac上,都可以使用同样的命令。Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。
项目构建过程:【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这六个步骤就是一个项目的完整构建过程。
Maven的作用(摘录)
- 在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们想到的是,难道还差jar包?
- 每个Java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。
- 因此,我们就要用到Maven(使用Ant也可以,不过编写Ant的xml脚本比较麻烦)----一个项目管理工具。
- Maven主要做了两件事:
- 统一开发规范与工具
- 统一管理jar包
- 还可以自定义框架模板代码, 建骨架项目
- 搭建maven私服

选择maven-archetype-webapp类型


修改build path 修改环境为1.8,设置jdk
创建server 选择之前安装的tomcat8.5,注意安装的tomcat版本需要和选择创建的版本匹配。
设置完成后,出现如下红色错误,这是因为项目设置的java版本和配置的 不一致导致。
右点项目属性 ,project facets 里选择java 的版本为1.8即可。
接下来是配置maven 加入spring boot框架
编辑pom.xml
将如下内容放进去
<!-- 继承 父包--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> </parent> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
右点选择maven ---update project即可。会将相应的版本 down到项目中。
在项目根目录下创建Application类,Spring Boot建议将我们main
方法所在的这个主要的配置类配置在根包名下。
在Application.java
中有main
方法。
因为默认和包有关的注解,默认包名都是当前类所在的包,例如@ComponentScan, @EntityScan, @SpringBootApplication
注解。
@SpringBootApplication
由于大量项目都会在主要的配置类上添加@Configuration,@EnableAutoConfiguration,@ComponentScan
三个注解。
因此Spring Boot提供了@SpringBootApplication
注解,该注解可以替代上面三个注解(使用Spring注解继承实现)。
@RestController
因为我们例子是写一个web应用,因此写的这个注解,这个注解相当于同时添加@Controller
和@ResponseBody
注解。
@EnableAutoConfiguration
Spring Boot建议只有一个带有该注解的类。
@EnableAutoConfiguration
作用:Spring Boot会自动根据你jar包的依赖来自动配置项目。
我创建了Applciation 类作为main启动程序文件,注意:该文件需要放到包的根目录,否则无法扫描 其他自定义的子目录 和子文件,像controller文件
我还创建了application.properties文件 自定义端口
package com.ming.test;
import java.util.Date;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
//@SpringBootApplication是Spring Boot的核心注解,也是一个组合注解。
//主要组合了@Configuration、@EnableAutoConfiguration、@ComponentScan。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我的目录结构:
application配置文件,可以修改端口号。
如果端口被占用,可以输入netstat -ano查看端口占用情况,找到对应的PID 后 打开任务管理器,找到相应的PID 进程可以结束端口占用。
注意 启动的时候选择 run as java application即可。
@GetMapping也可以换成如下写法
@RequestMapping(value = "/userinfo", method = RequestMethod.GET)