JavaとGradleでHello world
はじめに
何番煎じかわかりませんが、学習のためにJavaとGradleを使って「Hello world.」と表示するプログラムを作成してみました。
前提
- Java version
- 11
- Gradle version
- 6.5.1
- OS
- Windows 10
上記の環境で動作確認しています。ただし、ごく簡単なことしかしないため、多少のバージョンの違いは適宜読み替えれば問題ないはずです。
Gradleプロジェクトの作成
Gradleプロジェクトを作るためにまず適当なフォルダを作成します。
コマンドならば次のようになります。
mkdir hello-gradle
cd hello-gradle
ここではフォルダをhello-gradle
という名前にしました。
次に、gradleコマンドでプロジェクトを作成します。
プロジェクトを作成したいフォルダをカレントディレクトリにして、(つまり、cd hello-gradle
してフォルダの中にいる状態で)次のコマンドを実行します。
gradle init --type java-application
するといくつか質問をされます。
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2]
ビルドの設定を行うスクリプトをGroovyかKotlinのどちらで記述するか選択します。Javaプロジェクトの場合は普通Groovyを使うと思われるので、「1」を入力してEnterします。
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
次にテストフレームワークを選択します。今回はHello worldするだけなので、テストは何でもよいのですが、とりあえず「4」を入力してEnterします。
Project name (default: hello-gradle):
Source package (default: hello.gradle):
最後に「Project name」と「Source package」をそれぞれ聞かれます。ここではデフォルトで進めることとし、何も入力せずEnterします。
これでhello-gradle
フォルダの中に各種ファイルが生成されるはずです。
「Hello world.」するために必要なソースコードはすでにすべて出来上がっています。
今回もっとも重要な「Hello world.」を標準出力するメインメソッドはsrc/main/java/hello/gradle/App.java
にあります。
なお、最初にgradle init --type java-application
しましたが、--type
の指定無しでgradle init
だけでもいくつか質問事項が増えるだけで同じ結果になるはずです。
ただ、Javaのコマンドラインアプリケーションを作成するなら--type java-application
を指定したほうが速いです。
--type
に指定できるタイプはSupported Gradle build typesに記載されています。たとえば、kotlin-application
を指定するとKotlinのプロジェクトができるようです。
動作確認
hello-gradle
フォルダにおいて、コマンドプロンプトなら、
gradlew.bat run
のコマンドを実行します。するとHello world.
の文字列が出力されているはずです。これでJava + GradleによるHello worldは完了です。
テストを実行
Hello worldを標準出力するだけのプログラムなのでテストをしても意味がないですが、せっかくテストコードが用意されているのでテストも実行してみます。
動作確認時と同じように、コマンドプロンプトなら、
gradlew.bat test
を実行します。
すると、テストは成功し、BUILD SUCCESSFUL
と表示されます。
なお、テストコードはsrc/test/java/hello/gradle/AppTest.java
にあります。
このクラスのappHasAGreeting
メソッドがテストメソッドです。
このテストはメインメソッドのあるApp
クラスのgetGreeting
メソッドがnullを返さない、ということを検証しているだけです。このメソッドはHello world.
という文字列を返しているので当然テストはパスします。
このgetGreeting
メソッドをたとえば、
package hello.gradle;
public class App {
public String getGreeting() {
// return "Hello world.";
return null;
}
public static void main(String[] args) {
System.out.println(new App().getGreeting());
}
}
のようにnullを返すように変更してテストを実行すると、今度はテストが失敗し、> Task :test FAILED
という文言と失敗したテストメソッドが表示されます。
Author And Source
この問題について(JavaとGradleでHello world), 我々は、より多くの情報をここで見つけました https://qiita.com/SilverCafe/items/fa0790dbaf5b31e9f4c2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .