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)