Posted at

Spring Boot:Mavenを使ってビルド環境を構築する

More than 3 years have passed since last update.


Spring Boot:Mavenを使ってビルド環境を構築する


1. はじめに

Spring BootはMavenを使ったビルド環境を提供しています。

ここでは、Mavenを活用したSpring Bootのビルド環境の構築方法について説明します。


2. 事前準備

以下の環境を準備してください。

ソフトウェア名
バージョン

Java
1.8

Maven
3.2.3


3. ビルド環境を構築する


3.1. Parent POMの指定

spring-boot-starter-parentをParent POMとして継承することで、Spring Bootが提供する標準の設定をビルド環境に組み込むことができます。

Spring Bootが提供する設定には以下のものがあります。

Spring Bootが提供する標準の設定をビルド環境に組み込む場合、以下のタグを設定します。

<parent>

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

※) 以下の理由によりspring-boot-starter-parentをParent POMとして継承できない場合、以下のタグを設定します。


  • 所属するプロジェクトが独自のParent POMを提供している場合

  • Mavenの設定を独自で行いたい場合

<dependencyManagement>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.1.9.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>


3.2. Javaのバージョンの指定

spring-boot-starter-parentをParent POMとして継承している場合、Javaのバージョンは1.6が標準で設定されています。(Spring Bootはかなり保守的なJava互換性を選択します。)

例として、1.8のバージョンを利用したい場合は以下のタグを設定します。

<properties>

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


3.3. Spring Boot Maven Pluginの指定

Spring Bootは実行可能なJARファイルとしてパッケージングするためのMavenプラグインを提供しています。このプラグインを使う場合、以下のタグを設定します。

<build>

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


4. サンプル

MavenのPOMファイルのサンプルを以下に記載します。


4.1. spring-boot-starter-parentを継承する場合

<?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>

<groupId>com.skinoshita.springbootsample</groupId>
<artifactId>spring-boot-maven-sample</artifactId>
<version>1.0-SNAPSHOT</version>

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

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

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

<!-- Starter POMsの指定 -->

</project>


4.2. spring-boot-starter-parentを継承しない場合

<?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>

<groupId>com.skinoshita.springbootsample</groupId>
<artifactId>spring-boot-maven-sample</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.1.9.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<!-- Starter POMsの指定 -->

</project>


5. 参考資料


Spring Boot Reference Guide : http://docs.spring.io/spring-boot/docs/1.1.9.RELEASE/reference/htmlsingle/#using-boot-maven