二十六、SpringBoot的Maven构建

来源:互联网 发布:广州c语言培训机构 编辑:程序博客网 时间:2024/05/21 11:17

Maven

Maven用户可以从spring-boot-starter-parent项目继承获得合理的默认值。父项目提供以下功能:


  • Java 1.6作为默认编译器级别。
  • UTF-8源代码编码。
  • 一个依赖管理部分,让您省去了公共依赖标签,从继承的 spring-boot-dependenciesPOM。
  • 合理的资源过滤。
  • 合理的插件配置(exec plugin, surefire, Git commit ID, shade)。
  • 合理的资源application.properties和application.yml包括特定配置文件的文件(例如application-foo.properties和application-foo.yml)

最后一点:由于默认配置文件接受Spring样式占位符(${…​}),Maven过滤将更改为使用@..@占位符(可以使用Maven属性覆盖它 resource.delimiter)。
<properties>  <spring-data-releasedetrain.version> Fowler-SR2 </spring-data-releasetrain.version> </ properties>

##继承starter parent

想配置你的项目继承spring-boot-starter-parent只需要简单地设置parent为

    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.3.RELEASE</version>    </parent>

你应该只需要在该依赖上指定Spring Boot版本。如果导入其他的starters,你可以放心的省略版本号。

通过该设置,您还可以通过覆盖自己的项目中的属性来覆盖单个依赖关系。例如,要升级到另一个Spring Data发行列车,您需要添加以下内容pom.xml

使用没有父POM的Spring Boot

不是每个人都喜欢继承spring-boot-starter-parent POM。你可能需要使用公司标准parent,或你可能倾向于显式声明所有Maven配置。

如果你不使用spring-boot-starter-parent,通过使用一个scope=import的依赖,你仍能获取到依赖管理的好处:

<dependencyManagement>       <dependencies>           <dependency>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-dependencies</artifactId>                <version>1.3.0.BUILD-SNAPSHOT</version>                <type>pom</type>                <scope>import</scope>            </dependency>        </dependencies></dependencyManagement>

改变Java版本

spring-boot-starter-parent选择相当保守的Java兼容策略。如果你遵循我们的建议,使用最新的Java版本,你可以添加一个java.version属性:

<properties>    <java.version>1.8</java.version></properties>

使用Spring Boot Maven插件

Spring Boot包含一个Maven插件,它可以将项目打包成一个可执行jar。如果想使用它,你可以将该插件添加到节点处:

<build>    <plugins>        <plugin>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-maven-plugin</artifactId>        </plugin>    </plugins></build>

如果使用Spring Boot starter parent pom,你只需要添加该插件而无需配置它,除非你想改变定义在partent中的设置。

如果没有使用parent POM,你仍旧可以使用该插件。不过,你需要另外添加一个片段

<build>    <plugins>        <plugin>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-maven-plugin</artifactId>            <version>1.3.0.BUILD-SNAPSHOT</version>            <executions>                <execution>                    <goals>                        <goal>repackage</goal>                    </goals>                </execution>            </executions>        </plugin>    </plugins></build>
0 0