VSCode で Gradle ベースの Java プロジェクトを開発し始める
久々に Java プロジェクトを作ることになったが、モッサリした Eclipse に戻る気になれず、VSCode で開発したいと考えている。
また、古くは Ant でビルドステップを整えたり、それが Maven になって依存関係まで解決してくれたりしていた時代を経て、最近の Java プロジェクトでは Gradle というモノを使って環境を整えるみたい。Node.js の界隈でいうと、npm っぽいパッケージ管理の概念もあり、webpack などのようなビルドツールも内包していてユニットテストツールとの連携もバッチリ、という意味で SPA の CLI ツールっぽくもある、そんな感じ。
というワケで今回は、VSCode + Gradle な Java プロジェクトを立ち上げてみる。対象 OS は MacOS と Windows で、どちらでも同じ結果になるように解説した。
目次
JDK をインストールする
まずは JDK のインストール。以下の Oracle のサイトより、Java 8 系の JDK をダウンロードし、インストールする。
- Java Archive Downloads - Java SE 8
Java SE Development Kit 8u65
をダウンロードした
なんで今さら Java 8 系かというと、JavaFX という GUI アプリを構築するためのライブラリが JDK 本体に内包されているのが Java 8 までで、導入を楽にしたいからw。そうした横着したい理由などがなければ、JDK は Homebrew や Chocolatey で最新版を導入しても問題ない。
Oracle のサイトから JDK をダウンロードするには Oracle アカウントが必要になるのがちょっと面倒。
MacOS のみ : 環境変数を ~/.bash_profile
で設定する
Windows の場合はインストールさえすれば環境変数も自動設定されると思うが、MacOS だとうまくいかないかと思われるので紹介。次のような記述を ~/.bash_profile
に入れておこう。
# Java
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home"
export _JAVA_OPTIONS='-Dfile.encoding=UTF-8'
export PATH="${JAVA_HOME}/bin:${PATH}"
インストール後の確認
Java がインストールできたかどうか確認する。
- MacOS
$ java -version
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
- Windows (PowerShell にて確認)
PS> java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
Gradle をインストールする
続いて Gradle をインストールする。後述するが、実をいうと Gradle は必ずしもインストールが必須ではない。というのも、Gradle で構築したプロジェクトに含まれている gradlew
(Gradle-Wrapper) を使えば、Gradle をインストールせずとも動作するからだ。
しかし今回はホントに初回というテイなので、Gradle 本体を純粋にインストールする手順も紹介する。
MacOS でのインストール手順
MacOS で Gradle をインストールするには、Homebrew を使うのが手っ取り早い。
$ brew install gradle
$ gradle -v
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------
Build time: 2020-03-24 19:52:07 UTC
Revision: bacd40b727b0130eeac8855ae3f9fd9a0b207c60
Kotlin: 1.3.70
Groovy: 2.5.10
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_65 (Oracle Corporation 25.65-b01)
OS: Mac OS X 10.15.4 x86_64
こんな感じ。
Windows でのインストール手順
Windows の場合は Chocolatey でインストールできる。
PS> choco install -y gradle
# 環境変数 PATH の再読み込み
PS> rerefreshenv
PS> gradle -v
------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------
Build time: 2020-03-24 19:52:07 UTC
Revision: bacd40b727b0130eeac8855ae3f9fd9a0b207c60
Kotlin: 1.3.70
Groovy: 2.5.10
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_144 (Oracle Corporation 25.144-b01)
OS: Windows 10 10.0 amd64
こんな感じ。
- 参考 : Gradle | Installation
- 参考 : WindowsにGradleをインストール。Gradleをインストールしなくてもgradle.batとかは実行できるらしい - ts0818のブログ
- 参考 : 【Java】Gradleのインストールと基本的な使い方(画像付きで解説)
- 参考 : Windows10にGradleをインストール - Qiita
- 参考 : Windows10にGradleをインストール - Qiita
Gradle プロジェクトを立ち上げる
Gradle をインストールしたら、gradle init
コマンドで新規プロジェクトを作成する。--type java-application
の指定を忘れないようにする。ビルドスクリプトは Groovy、テストツールは JUnit (それぞれデフォルトのまま) で良いかと。
# 作業ディレクトリを作成し移動する
$ mkdir practice-java-gradle && cd $_
# Gradle プロジェクトを作成する
$ gradle init --type java-application
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2]
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4]
Project name (default: practice-java-gradle):
Source package (default: practice.java.gradle):
> Task :init
Get more help with your project: https://docs.gradle.org/6.3/userguide/tutorial_java_projects.html
BUILD SUCCESSFUL in 15s
2 actionable tasks: 2 executed
# 作成されたファイルを確認する
$ tree
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── practice
│ │ └── java
│ │ └── gradle
│ │ └── App.java
│ └── resources
└── test
├── java
│ └── practice
│ └── java
│ └── gradle
│ └── AppTest.java
└── resources
15 directories, 8 files
こんな感じ。とても簡単だ。
gradlew
(Gradle-Wrapper) の使い方
以降の操作で、
$ gradle run
$ gradle build
と gradle
コマンドを直接叩いても良いのだが、Gradle がインストールされていない環境向けに gradlew
というラッパースクリプトが用意されている。コレを使えば Gradle をインストールすることなく、このプロジェクトを git clone
などしてくるだけですぐに動作させられる。
MacOS や Linux 環境では、プロジェクトルートにある gradlew
を、Windows コマンドプロンプト環境では gradlew.bat
を使えば良い。
# Gradle-Wrapper を使う例
$ ./gradlew run
$ ./gradlew build
> .\gradlew.bat run
> .\gradlew.bat build
このようにすると、Gradle-Wrapper が必要な資材を自動的に用意してくれて、プロジェクトを動作させてくれる。とっても便利だ。正直 Gradle は最初に gradle init
を叩く時さえ存在すれば良いので、イチイチインストールしなくても良いかな、とすら思う。w
VSCode 拡張機能を入れる
Gradle プロジェクトを立ち上げたので、あとは VSCode 上で開発できるようにする。
といってもやることは簡単で、以下の拡張機能をインストールすればほぼ終わり。
- Java Extension Pack : Microsoft 謹製
- 「Language Support for Java(TM) by Red Hat」が内包されている
あとは Gradle プロジェクトを開いて開発が進めていけるはずだ。インポートの自動補完もされるし、コンパイルエラーになるようなコードにはちゃんとエラーがつくはず。
動作確認やユニットテストは gradlew
を使ってやろう。
# アプリを動作させる
$ ./gradlew run
# テストする
$ ./gradlew test
# ビルドする
$ ./gradlew build
適宜 build/
や bin/
ディレクトリを .gitignore
で無視しておくと良いかと。
以上
まだ build.gradle
など、Gradle 特有の部分にほとんど触れてはいないのだが、それでもかなり簡単に Java プロジェクトが構築できたことが分かるだろう。
VSCode による Java 開発も、動作が快適で大満足。gradle run
によるコンパイルと起動がかなり速いので、Eclipse よりもイライラせずに済むなーと思っている。