Gradle + Spring Boot で Hello World
Java エンジニア向けの内容ではないです。
普段フロントエンドをやっているエンジニアが、案件の合間に先輩に教わりながら Java で Hello World した時のメモです。
本当は今携わっているプロダクトのバックエンドのシステムそのものをローカル環境で動かしたかったのですが、 Mac 向けの環境構築手順がなく、不慣れな言語の不慣れなフレームワークで手こずったため挫折しました。。。
1. JDK のインストール
Java の実行環境がないため、まずは現在最新の JDK 12 をダウンロード。
展開します。
% tar xvzf openjdk-11+28_osx-x64_bin.tar.gz % sudo mv jdk-12.0.1.jdk /Library/Java/JavaVirtualMachines/ % /usr/libexec/java_home -v Matching Java Virtual Machines (1): 12.0.1, x86_64: "OpenJDK 12.0.1" /Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home
次に、パスを通します。
% export JAVA_HOME='/usr/libexec/java_home' % java -version openjdk version "12.0.1" 2019-04-16 OpenJDK Runtime Environment (build 12.0.1+12) OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
インストールした JDK の情報が表示されたので、これでインストールは完了です。
手順等はこちらを参考にしました。 qiita.com
ちなみに、JDK とは Java Development Kit のことで、 Java のプログラミングに必要なツール群を指します。
詳しく知りたい場合はこちらの Oracle の公式動画が分かりやすかったです。
2. Java で Hello World
Java の実行環境を手に入れたので、とりあえず Java のコードを動かしてみます。
Hello World! するだけのシンプルなコード。
// HelloWorld.java public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } }
javac コマンドでコンパイルして HelloWorld.class というファイルができたら、 java コマンドで実行します。
% javac HelloWorld.java % ls HelloWorld.class HelloWorld.java % java HelloWorld Hello World!
👏
3. SDKMAN のインストール
上記の理由により実際の開発環境を作るのを諦めたため、せっかくなのでモダンな Java の開発環境を作ることにしました。
SDKMAN は、 Gradle や Groovy などのベースの Java バージョンを管理をします。( nodenv のようなもの)
curl でダウンロードします。
% curl -s "https://get.sdkman.io" | bash ... All done! Please open a new terminal, or run the following in the existing one: source "/Users/<username>/.sdkman/bin/sdkman-init.sh" Then issue the following command: sdk help Enjoy!!! % source "/Users/<username>/.sdkman/bin/sdkman-init.sh" % sdk version ==== BROADCAST ================================================================= * 2019-05-10: Groovy 3.0.0-beta-1 released on SDKMAN! #groovylang * 2019-05-10: Groovy 2.5.7 released on SDKMAN! #groovylang * 2019-05-10: Groovy 2.4.17 released on SDKMAN! #groovylang ================================================================================ SDKMAN 5.7.3+337
4. Gradle のインストール
Gradle とはオープンソースのビルドシステムで、 Maven の次世代のものだそうです。
Java プロジェクトの作成、ビルド、実行などができるので npm 的なものと思って良さそうです。
Gradle は SDKMAN でインストールします。
% sdk install gradle 5.4.1 ... Installing: gradle 5.4.1 Done installing! Setting gradle 5.4.1 as default. % gradle -v Welcome to Gradle 5.4.1! Here are the highlights of this release: - Run builds with JDK12 - New API for Incremental Tasks - Updates to native projects, including Swift 5 support For more details see https://docs.gradle.org/5.4.1/release-notes.html ------------------------------------------------------------ Gradle 5.4.1 ------------------------------------------------------------ Build time: 2019-04-26 08:14:42 UTC Revision: 261d171646b36a6a28d5a19a69676cd098a4c19d Kotlin: 1.3.21 Groovy: 2.5.4 Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018 JVM: 12.0.1 (Oracle Corporation 12.0.1+12) OS: Mac OS X 10.14.4 x86_64
5. Spring Boot のプロジェクトの作成と実行
Spring Boot とは Spring Framework をベースにした、簡単にアプリケーション開発を始められる軽量なフレームワークです。
これを選んだ理由は、バックエンドのシステムで利用しているのがフレームワークが Spring Framework をベースにしているためです。
基本設定をスキップして、すでにあるプロジェクトを clone します。
% git clone https://github.com/spring-guides/gs-spring-boot.git
作成したプロジェクトを実行します。
% cd gs-spring-boot/initial % gradle bootRun ... <=========----> 75% EXECUTING [3m 14s] > :bootRun > IDLE
上記の状態になったら起動の完了です。 localhost:8080 にアクセスすると次のように表示されます。
💪
6. Hello World する
せっかくなので Hello World とテキストを書き換えます。
gs-spring-boot/initial/src/main/java/hello/HelloController.java の return のテキストを変更します。
package hello; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Hello World!"; } }
再び gradle bootRun を実行します。
🎉
せっかくなので、 DB に繋げて CRUD くらいはやってみようかなあと思っています。