SpringBoot +Pom.xml工程資源文件配置


   

繼承spring-boot-starter-parent

要成為一個spring boot項目,首先就必須在pom.xml中繼承spring-boot-starter-parent,同時指定其版本

 

  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>1.5.6.RELEASE</version>
  5. </parent>

環境參數

 

在普通maven項目中,需要在pom.xml中配置插件來修改jdk版本,utf-8編碼等環境參數,在spring boot中則更加簡單。

在eclipse中按ctrl+左鍵點擊上面的spring-boot-starter-parent,查看其源碼,其中有下面這段內容

 

  1. <properties>
  2. <java.version>1.6</java.version>
  3. <resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn't clash with Spring ${} placeholders -->
  4. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  5. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  6. <maven.compiler.source>${java.version}</maven.compiler.source>
  7. <maven.compiler.target>${java.version}</maven.compiler.target>
  8. </properties>

從上面可以看出,spring boot項目默認的jdk版本是1.6,默認的編碼是utf-8。如果我們要修改這些環境參數,比如將jdk版本改成1.8,只需要在我們項目的pom.xml文件中覆蓋要修改的參數,如下

  1. <properties>
  2. <java.version>1.8</java.version>
  3. </properties>

依賴

spring-boot-starter-parent的源碼中又繼承了spring-boot-dependencies,spring-boot-dependencies源碼又包括以下內容
  1. <properties>
  2. <activemq.version>5.14.5</activemq.version>
  3. <antlr2.version>2.7.7</antlr2.version>
  4. <appengine-sdk.version>1.9.53</appengine-sdk.version>
  5. <!-- 以下省略.... -->
  6. </properties>
  7. <dependencyManagement>
  8. <dependencies>
  9. <dependency>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot</artifactId>
  12. <version>1.5.4.RELEASE</version>
  13. </dependency>
  14. <!-- 以下省略.... -->
  15. </dependencies>
  16. </dependencyManagement>
<properties>中的內容是用來配置spring boot自動引入的各個jar包的版本,如果你想用別的版本替換里面的版本,和修改JDK一樣,只需要在我們自己項目中的pom.xml文件中覆蓋相關參數。
<dependencyManagement>中的內容,就是為什么我們自己項目中配置spring boot組件依賴時,可以不用配置版本,比如
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
如果不理解的話,可以參考我寫的maven主題中的一篇文章 maven(十)-繼承,這是理解spring boot項目之前必須要理解的概念

生成可執行jar文件

默認情況下,maven打包生成的jar文件是用來給其他項目依賴用的,是無法直接運行的。spring boot根據自生需要,提供了一個插件來生成可執行jar文件。在spring-boot-starter-parent源碼中可以找到,如下:
  1. <plugin>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-maven-plugin</artifactId>
  4. <executions>
  5. <execution>
  6. <goals>
  7. <goal>repackage</goal>
  8. </goals>
  9. </execution>
  10. </executions>
  11. <configuration>
  12. <mainClass>${start-class}</mainClass>
  13. </configuration>
  14. </plugin>
我們只需要在自己項目的pom.xml中聲明這個插件,就會生效
  1. <plugin>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-maven-plugin</artifactId>
  4. </plugin>
執行過mvn package打包命令后,target目錄會生成*.jar,和*.jar.original

 

使用 Spring Boot ,你不需要提供相關依賴的版本,Spring Boot 會自動對其進行管理。當你進行系統升級的時候,只需要修改Spring Boot 的版本號就行了,Spring Boot 會自動對其他的依賴進行升級。當然,你也可以根據具體的需要,指定依賴版本來覆蓋Spring Boot 的推薦的依賴版本。

Maven

       我們知道,可以通過繼承spring-boot-starter-parent 的方式來添加 Spring Boot 的相關支持,這個父項目為我們提供以下幾個默認配置:

  • Java 1.6 編譯級別
  • UTF-8編碼方式
  • 依賴管理模塊,你在添加依賴的時候可以省略<version>標簽,繼承自 spring-boot-dependencies POM
  • 資源文件過濾(將${…​}定義的變量,在輸出到target文件中時,替換為變量的值)
  • 插件配置(exec plugin, surefire, Git commit ID, shade)
  • application.properties 和 application.yml 文件過濾

       POM項目只支持單繼承,但有的時候,我們必須要繼承其他POM,或者使用我們自己的配置。這時,如果我們要添加 Spring Boot 的支持,可以通過其他方式。

       我們可以通過引入spring-boot-dependencies,並且設置scope=import,讓Spring Boot來進行依賴管理:

代碼清單1 - 將依賴交給Spring Boot管理
<dependencyManagement> <dependencies> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.6.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

       我們可以通過在spring-boot-dependencies之前,引入我們需要的依賴的版本來覆蓋 Spring Boot 提供的依賴版本,例如:

代碼清單2 - 覆蓋Spring Boot提供的依賴
<dependencyManagement> <dependencies> <!-- Override Spring Data release train provided by Spring Boot --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-releasetrain</artifactId> <version>Fowler-SR2</version> <scope>import</scope> <type>pom</type> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.6.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

       若想使用新的Java編譯器版本,可添加一個Java版本的屬性,如下:

代碼清單3 - 使用較新的Java版本
<properties> <java.version>1.8</java.version> </properties>

       若要將項目打包成一個可執行的文件,需要在<plugins>中添加 spring-boot-maven-plugin 插件,如下:

代碼清單4 - 將項目打包成可執行jar
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM