読者です 読者をやめる 読者になる 読者になる

だったら壁にでも話してろよ。

技術ネタはQiitaに移行したので、出口のない悩みや考えを垂れ流すことにします。

Spring Boot のビルド方法あれこれ

Spring Boot の起動には基本的に、Maven (または、Gradle) を使用するが、2つのゴールが用意されているので、その使い方などを紹介。

spring-boot:run

Spring Boot アプリケーションを起動するためのゴール。Spring Boot の設定は、Maven--define オプションで渡す。

mvn spring-boot:run --define server.port=8011 --define logging.level.org.springframework.web=DEBUG

spring-boot:repackage

Spring Boot アプリケーション パッケージを作成するためのゴール。pom.xmlpackaging 要素での指定により、jar、または war のいずれかの成果物を選択できる。packaging 要素を省略した場合は、jar になる。

<?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.yo1000</groupId>
    <artifactId>bluefairy</artifactId>
    <version>0.1.0</version>
    <packaging>jar</packaging>

    ...
</project>

また、Maven から spring-boot:repackage を実行する場合には、package ゴールといっしょに使用する。

mvn package spring-boot:repackage

成果物は {プロジェクト ディレクトリ}/target に配置される。これを起動する場合は、java コマンドを使用する。

java -jar bluefairy-0.1.0.jar --server.port=8011 --logging.level.org.springframework.web=DEBUG

成果物まで用意できると、java のみで起動できるようになるので、サーバーのセットアップなども省力化できて、とても良いですね。