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ビルドが主要なタスクであり、最もよく使用されます。 このタスクは、コードをコンパイル、テスト、およびアセンブルしてJARファイルにします。 。 ビルドは次のように入力して開始されます。

> 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ファイルを保持します。

通常、私は nレポートには、JUnitテストの実行時に生成されるファイルがあります。 

これで、 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から入手できます。