GradleでJavaプロジェクトのテンプレート作成

メモ:

GradleでJavaプロジェクトをビルドしてみる」でGradleのJavaプラグインとして仮定しているフォルダ構成がありました。このフォルダ構成を初期構築するタスクを確認します。

initタスク

Gradleには、initタスクが用意されており、このinitタスクでは次の構成を作ることができます。

  • basic
  • groovy-library
  • java-library
  • pom
  • scala-library

まず、プロジェクトフォルダとなるprojectフォルダを作成します。

c:\>mkdir project

作成したprojectフォルダをカレントとして次のコマンドを実行します。

c:\> cd project
c:\project> gradle init --type java-library

コマンドが実行されると、最低限必要な構成が作成されます。

プロジェクト
     |- .gradle
     |   |- 2.3
     |   |    |- taskArtifacts
     |- gradle
     |   |- wrapper
     |- src
         |- main
         |    |- java(Javaソース)
         |
         |- test
         |    |- java(テストのJavaソース)
     build.gradle
     gradlew
     gradlew.bat
     settings.gradle

build.gradleの中は、次のようになっていました。

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.7'
    testCompile 'junit:junit:4.12'
}

GradleでJavaプロジェクトをビルドしてみる」で作成したbuild.gradleには無かったrepositoriesやdependenciesは、別途調べていきます。

出来上がったフォルダ構成を見てみると、resourcesフォルダが無いようです。 必要な場合は、次のようなタスクを追加して作成することができます。

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.7'
    testCompile 'junit:junit:4.12'
}

task initDirs {
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

作成したタスクを利用して、resourcesフォルダを作成します。

c:\project> gradle initDirs

このタスクは、sourceSets*で「mainとtest」を対象としてresourcesのフォルダーを作成してねっといった感じです。

ビルドしてみる

作成された「src\main\java」フォルダにHello.javaを配置します。Hello.javaは、次のようなコードが書かれています。

public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("Hello, World!");
    }
}

次のコマンドを実行してビルドしてみます。

c:\project> gradle build

ビルドに成功すると「build」フォルダが作成され、「build\libs」にjarファイル、「build\classes」フォルダにクラスファイルが作成されます。

Javaプロジェクトのテンプレートが作成できることが確認できました。