EclipseでMavenのプロジェクトにSpring Bootを設定する

環境

Mavenをインストールしてプロジェクトを作成します。

ponsuke-tarou.hatenablog.com
今回は、[Artifact Id]の「maven-archetype-quickstart」を選択しました。
f:id:ponsuke_tarou:20180509002738p:plain

コンパイラを設定します。

f:id:ponsuke_tarou:20180525135556p:plain

  1. プロジェクトのプロパティダイアログを開きます。(Command + I)
  2. [Java Compiler]でプロジェクト固有の設定をできるようにしてコンパイラに「1.8」を選択・再コンパイルします。([OK]ボタンを押下すると再ビルドを促すメッセージが表示されます。)

ビルド・パスを設定します。

f:id:ponsuke_tarou:20180525140708p:plain
f:id:ponsuke_tarou:20180525141110p:plain

  1. プロジェクトのプロパティダイアログを開きます。(Command + I)
  2. [Java Build Path]で[Libraris]タブを選択します。
  3. JREシステム・ライブラリー 1.5 を除去します。
  4. [Add Library...]ボタンを押下してダイアログを開き JREシステム・ライブラリー 1.8 を追加します。
  5. [OK]ボタンを押下してダイアログを閉じます。

Spring Bootをpom.xmlに設定します。

  1. [Package Explorer]でpom.xmlを選択して開きます。

変更前のpom.xml

<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.qiita.ponsuke0531</groupId>
  <artifactId>trySpring</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>trySpring</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

parentタグで継承するプロジェクトを設定します。

  1. Maven Repository: Search/Browse/Exploreで「spring-boot-starter-parent」を検索して、アイコンを押下します。
    • f:id:ponsuke_tarou:20180312000924p:plain
  2. 好きなバージョンを選択します。
    • f:id:ponsuke_tarou:20180312001003p:plain
  3. pom.xmlのprojectタグ配下に書く内容をコピペします。
    • f:id:ponsuke_tarou:20180312001016p:plain
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<dependency><!--------- タグを「parent」に変更します。
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
    <type>pom</type><!------------------------------ 消しちゃいます。
</dependency>

waman.hatenablog.com

dependencyタグで依存するライブラリを設定します。

  1. Maven Repository: Search/Browse/Exploreから「spring-boot-starter-web」「spring-boot-maven-plugin」の情報を頂いてきます。
  2. pom.xmlのdependenciesタグ配下に追加します。
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency><!------------- ここのタグはこのまま。
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.0.2.RELEASE</version><!-- [Duplicating managed version 2.0.2.RELEASE for spring-boot-starter-web]と警告が出るので消しました。
</dependency>

3. Maven 入門 (2) | TECHSCORE(テックスコア)

Spring Bootが提供しているMavenプラグインを設定します。

  1. Maven Repository: Search/Browse/Exploreから「spring-boot-maven-plugin」の情報を頂いてきます。
  2. pom.xmlのbuildタグ配下のplugins配下に追加します。(build/pluginsはデフォルトでなかったので書きました(補完機能で)。)
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<dependency><!-------------- タグを「plugin」に変更します。
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.0.2.RELEASE</version>
</dependency>

書き終わったpom.xml

<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.qiita.ponsuke0531</groupId>
  <artifactId>trySpring</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>trySpring</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

  <!-- 継承するプロジェクトの情報:parentタグで書くこと親プロジェクトとして継承できます。 -->
  <parent>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
  </parent>

  <!-- 依存するライブラリの情報:dependencyタグで書くと依存するライブラリの情報を設定できます。 -->
  <dependencies>
    <dependency>
      <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

「Hellow Spring」してみる。

こちらのサイトに従って動かしてみました。
blog.w-hippo.com

/***** App.javaに追記 *****/
package com.qiita.ponsuke0531.trySpring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Hello world!
 * 
 */
@SpringBootApplication
public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
        SpringApplication.run(App.class, args);
    }
}
/****** AppControllerを作成 *****/
package com.qiita.ponsuke0531.trySpring;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AppController {
    @RequestMapping("/")
    private String hello() {
        return "Hello Spring!";
    }
}

f:id:ponsuke_tarou:20180525155432p:plain
f:id:ponsuke_tarou:20180525155706p:plain

次は、Tomcatを設定します。

ponsuke-tarou.hatenablog.com