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プロジェクトのテンプレートが作成できることが確認できました。