ビルドツールいろいろありますね、Googleが社内で利用していたノウハウをベースにしたBazelというものも出てるみたいですね。
今回は、Apache Mavenです。環境は、Windows10 Homeでございます。
Apache Mavenのダウンロード
https://maven.apache.org/download.cgi にアクセスします。
下の方にスクロールして、「Binary Zip Archive」の「apache-maven-x.x.x.bin.zip」を選択。
ダウンロードしたzipの中身を適当な場所に配置。今回はC:¥Program Files(x86)直下へ。
「続行(C)」。
配置されました。
環境変数への追加
binの中身が利用できるよう、環境変数へ追加していきます。「システム(Y)」>「システム情報」>「システムの詳細設定」ときて、「環境変数(N)...」を選択。
「システム環境変数(S)」で「M2_HOME」の「編集(I)...」。まだ作成していない場合は「新規(W)....」で。
「変数値(V):」を、
新しく配置したフォルダまでのパスに設定し、「OK」。
そしたら、「システム環境変数(S)」で「Path」の「編集(I)...」。
「新規(N)」で「%M2_HOME%¥bin」を追加してください。「OK」。
コマンドプロンプトを起動し、
mvn -v
でバージョンが表示されればOK。
Mavenでプロジェクトの作成
コマンドプロンプトで、プロジェクトを作成したい場所に移動し、
cd C:\Users\Toshinobu\Desktop
mvn archetype:generate
空Enter。
デフォルトで最新バージョンが選択された状態になっているので、問題なければEnter。
groupIdを聞かれるので、適当に入力。Enter。(Javaでいうところのパッケージ名のようなイメージのようです。)
artifactIdを聞かれるので適当に入力。Enter。(アプリケーション名に相当するもののようです。)
プロジェクトをWARファイルに変換するときなどのバージョン。デフォルト値で問題ないようなので、Enter。
パッケージ名もデフォルトで設定されるもので問題ないようです。Enter。
そのまま、Enter。
プロジェクトが作成されました。
デスクトップにプロジェクトが作成されています。
pom.xmlを編集します。Eclipse(STSプラグイン込み)でSpring Bootのプロジェクト(バージョンは、「2.0.0.M5」にしました。)を作成してできたpom.xmlの内容を貼れば良いみたいです。
<?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.ts0818.springboot</groupId> <artifactId>ts0818BootApp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>ts0818BootApp</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.M5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project>
保存したら、コマンドプロンプトで、
mvn spring-boot:run
コマンドプロンプトで、「Hello World!」と表示されてます。
これは、 「App.java」の中身を見てみると、
package com.ts0818.springboot; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }
となっていることから、お馴染みのJavaアプリケーションのmainメソッドが実行されているためですね。Eclipse(STSプラグイン込み)などで、「Spring スターター・プロジェクト」でプロジェクトを作成すると、この「App.java」の部分が、
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpbootTestApplication { public static void main(String[] args) { SpringApplication.run(SpbootTestApplication.class, args); } }
みたいな感じになっていきます。Mavenだとpom.xmlの調整などいろいろ必要になってくるようで、使いこなすのは難しそうですね。
とりあえず、Mavenはこんなところで。