Gradleを使用したJavaアプリケーションの構築
1. 概要
このチュートリアルは、Gradleを使用してJavaベースのプロジェクトを構築する方法に関する実用的なガイドを提供します。
プロジェクト構造を手動で作成し、初期構成を実行し、JavaプラグインとJUnit依存関係を追加する手順を説明します。 次に、アプリケーションをビルドして実行します。
最後に、最後のセクションで、GradleBuildInitプラグインを使用してこれを行う方法の例を示します。 いくつかの基本的な紹介は、記事 Introduction toGradleにもあります。
2. Javaプロジェクトの構造
Javaプロジェクトを手動で作成してビルドの準備をする前に、Gradleをインストールする必要があります。
gradle-employee-appという名前のPowerShellコンソールを使用してプロジェクトフォルダーの作成を開始しましょう。
> mkdir gradle-employee-app
その後、プロジェクトフォルダーに移動し、サブフォルダーを作成しましょう。
> mkdir src/main/java/employee
結果の出力を示します。
Directory: D:\gradle-employee-app\src\main\java
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 4/10/2020 12:14 PM employee
上記のプロジェクト構造内で、2つのクラスを作成しましょう。 1つは、名前、電子メールアドレス、生年月日などのデータを含む単純なEmployeeクラスです。
public class Employee {
String name;
String emailAddress;
int yearOfBirth;
}
2つ目は、Employeeデータを出力するメインのEmployeeAppクラスです。
public class EmployeeApp {
public static void main(String[] args){
Employee employee = new Employee();
employee.name = "John";
employee.emailAddress = "[email protected]";
employee.yearOfBirth = 1978;
System.out.println("Name: " + employee.name);
System.out.println("Email Address: " + employee.emailAddress);
System.out.println("Year Of Birth:" + employee.yearOfBirth);
}
}
3. Javaプロジェクトを構築する
次に、 Javaプロジェクトをビルドし、プロジェクトのルートフォルダーにbuild.gradle構成ファイルを作成します。
PowerShellコマンドラインには次のものがあります。
Echo > build.gradle
入力パラメータに関連する次のステップをスキップします。
cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters:
InputObject[0]:
ビルドを成功させるには、アプリケーションプラグインを追加する必要があります。
plugins {
id 'application'
}
次に、アプリケーションプラグインを適用し、メインクラスの完全修飾名を追加します:
apply plugin: 'application'
mainClassName = 'employee.EmployeeApp'
各プロジェクトはタスクで構成されています。 タスクは、ソースコードのコンパイルなど、ビルドが実行する作業の一部を表します。
たとえば、完了したプロジェクト構成に関するメッセージを出力するタスクを構成ファイルに追加できます。
println 'This is executed during configuration phase'
task configured {
println 'The project is configured'
}
> gradle build
上記のコマンドを実行して、以下を出力します。
> Configure project :
This is executed during configuration phase
The project is configured
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 up-to-date
ビルド結果を確認するために、サブフォルダーを含むビルドフォルダーを見てみましょう: クラス、ディストリビューション、ライブラリ、およびレポート。 Tree / F と入力すると、ビルドフォルダーの構造がわかります。
├───build
│ ├───classes
│ │ └───java
│ │ ├───main
│ │ │ └───employee
│ │ │ Employee.class
│ │ │ EmployeeApp.class
│ │ │
│ │ └───test
│ │ └───employee
│ │ EmployeeAppTest.class
│ │
│ ├───distributions
│ │ gradle-employee-app.tar
│ │ gradle-employee-app.zip
│ ├───libs
│ │ gradle-employee-app.jar
│ │
│ ├───reports
│ │ └───tests
│ │ └───test
│ │ │ index.html
│ │ │
│ │ ├───classes
│ │ │ employee.EmployeeAppTest.html
ご覧のとおり、 classes サブフォルダーには、以前に作成した2つのコンパイル済み.classファイルが含まれています。 distributions サブフォルダーには、アプリケーションjarパッケージのアーカイブバージョンが含まれています。 また、 l ibs は、アプリケーションのjarファイルを保持します。
通常、私は
これで、 gradle run。と入力して、Javaプロジェクトを実行する準備が整いました。終了時にアプリケーションを実行した結果:
> Configure project :
This is executed during configuration phase
The project is configured
> Task :run
Name: John
Email Address: [email protected]
Year Of Birth:1978
BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
3.1. Gradleラッパーを使用してビルドする
Gradle Wrapperは、宣言されたバージョンのGradleを呼び出すスクリプトです。
まず、build.gradleファイルでラッパータスクを定義しましょう。
task wrapper(type: Wrapper){
gradleVersion = '5.3.1'
}
PowerShellのgradleラッパーを使用してこのタスクを実行してみましょう。
> Configure project :
This is executed during configuration phase
The project is configured
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
/ gradle /wrapper の場所にあるファイルを含め、いくつかのファイルがプロジェクトフォルダーの下に作成されます。
│ gradlew
│ gradlew.bat
│
├───gradle
│ └───wrapper
│ gradle-wrapper.jar
│ gradle-wrapper.properties
- gradlew :LinuxでGradleタスクを作成するために使用されるシェルスクリプト
- gradlew.bat :WindowsユーザーがGradleタスクを作成するための.batスクリプト
- gradle-wrapper.jar :アプリケーションのラッパー実行可能jar
- gradle-wrapper.properties :ラッパーを構成するためのプロパティファイル
4. Javaの依存関係を追加し、簡単なテストを実行します
まず、構成ファイルで、依存関係のjarファイルをダウンロードする場所からリモートリポジトリを設定する必要があります。 ほとんどの場合、これらのリポジトリは mavenCentral()または jcenter()のいずれかです。 2番目のものを選びましょう:
repositories {
jcenter()
}
リポジトリを作成したら、ダウンロードする依存関係を指定できます。 この例では、ApacheCommonsとJUnitライブラリを追加しています。 実装するには、依存関係構成にtestImplementationおよびtestRuntimeパーツを追加します。
これは、追加のテストブロックに基づいています。
dependencies {
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
testImplementation('junit:junit:4.13')
testRuntime('junit:junit:4.13')
}
test {
useJUnit()
}
それが終わったら、簡単なテストでJUnitの作業を試してみましょう。 src フォルダーに移動し、テスト用のサブフォルダーを作成します。
src> mkdir test/java/employee
最後のサブフォルダー内に、EmployeeAppTest。javaを作成しましょう。
public class EmployeeAppTest {
@Test
public void testData() {
Employee testEmp = this.getEmployeeTest();
assertEquals(testEmp.name, "John");
assertEquals(testEmp.emailAddress, "[email protected]");
assertEquals(testEmp.yearOfBirth, 1978);
}
private Employee getEmployeeTest() {
Employee employee = new Employee();
employee.name = "John";
employee.emailAddress = "[email protected]";
employee.yearOfBirth = 1978;
return employee;
}
}
前と同じように、コマンドラインから gradle clean test を実行すると、テストは問題なく合格するはずです。
5. Gradleを使用したJavaプロジェクトの初期化
このセクションでは、これまでに実行したJavaアプリケーションを作成および構築するための手順について説明します。 違いは、今回はGradleBuildInitプラグインを使用して作業することです。
新しいプロジェクトフォルダーを作成し、 gradle-java-example。という名前を付けます。次に、その空のプロジェクトフォルダーに切り替えて、initスクリプトを実行します。
> gradle init
Gradleはいくつかの質問をして、プロジェクトを作成するためのオプションを提供します。 最初の質問は、どのタイプのプロジェクトを生成したいかです。
Select type of project to generate:
1: basic
2: cpp-application
3: cpp-library
4: groovy-application
5: groovy-library
6: java-application
7: java-library
8: kotlin-application
9: kotlin-library
10: scala-library
Select build script DSL:
1: groovy
2: kotlin
Enter selection [1..10] 6
プロジェクトのタイプとしてオプション6を選択し、次にビルドスクリプトの最初のオプション(groovy)を選択します。
次に、質問のリストが表示されます。
Select test framework:
1: junit
2: testng
3: spock
Enter selection (default: junit) [1..3] 1
Project name (default: gradle-java-example):
Source package (default: gradle.java.example): employee
BUILD SUCCESSFUL in 57m 45s
2 actionable tasks: 2 executed
ここでは、テストフレームワークの最初のオプションであるjunitを選択します。 プロジェクトのデフォルト名を選択し、ソースパッケージの名前として「employee」と入力します。
/ src プロジェクトフォルダー内の完全なディレクトリ構造を確認するには、PowerShellでTree /Fと入力します。
├───main
│ ├───java
│ │ └───employee
│ │ App.java
│ │
│ └───resources
└───test
├───java
│ └───employee
│ AppTest.java
│
└───resources
最後に、 gradle runを使用してプロジェクトをビルドすると、終了時に「HelloWorld」が表示されます。
> Task :run
Hello world.
BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
6. 結論
この記事では、Gradleを使用してJavaアプリケーションを作成および構築する2つの方法を紹介しました。 実際、私たちは手作業を行い、コマンドラインからアプリケーションのコンパイルと構築を開始するのに時間がかかりました。 この場合、アプリケーションが複数のライブラリを使用する場合は、いくつかの必要なパッケージとクラスのインポートに注意する必要があります。
一方、 Gradle initスクリプトには、プロジェクトのライトスケルトンを生成する機能と、Gradleに関連付けられたいくつかの構成ファイルがあります。
この記事のソースコードは、GitHubでから入手できます。