Gradleプロジェクト作成時の init タスク

f:id:Naotsugu:20150224234525p:plain

Build Init Plugin

init タスクで build.gradle などをよろしく作れます。

試験的な提供なので将来が計画されていますが、Gradle 2.3 時点でどのようなになるかメモしておきます。

(2017/02/22 追記) 現在は java-application が追加されているので加えました。


Gradle 4 の場合は以下を参照ください。

blog1.mammb.com

basic

タイプ指定なしで basic 指定とみなされます。

gradle init

ディレクトリはこんな状態になります。

f:id:Naotsugu:20150425013550p:plain

build.gradle は以下の内容で生成されます。

/*
// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.7'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile "junit:junit:4.11"
}
*/

java ライブラリプロジェクトの設定で、すべてコメントアウトされています。

java-application

Java アプリケーション用のプロジェクト。

gradle init --type java-application

ディレクトリはこんな状態になります。

f:id:Naotsugu:20170222213953p:plain

build.gradle は以下の内容で生成されます。

// Apply the java plugin to add support for Java
apply plugin: 'java'

// Apply the application plugin to add support for building an application
apply plugin: 'application'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

dependencies {
    // The production code uses Guava
    compile 'com.google.guava:guava:20.0'

    // Use JUnit test framework
    testCompile 'junit:junit:4.12'
}

// Define the main class for the application
mainClassName = 'App'

java-library

Java ライブラリ用のプロジェクト。

gradle init --type java-library

ディレクトリはこんな状態になります。

f:id:Naotsugu:20150425014411p:plain

build.gradle は以下の内容で生成されます。

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.7'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
}

自動作成した後は、resources ディレクトリ作ってくれないので以下のようなタスク定義して

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

resources ディレクトリ作成

./gradlew initDirs

は必要ですね。

scala-library

Scala ライブラリ用のプロジェクト。

gradle init --type scala-library

ディレクトリはこんな状態になります。

f:id:Naotsugu:20150425014701p:plain

build.gradle は以下の内容で生成されます。

// Apply the scala plugin to add support for Scala
apply plugin: 'scala'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // We use Scala 2.11 in our library project
    compile 'org.scala-lang:scala-library:2.11.5'

    // We use Scalatest for testing our library
    testCompile 'junit:junit:4.12'
    testCompile 'org.scalatest:scalatest_2.11:2.2.4'
    testRuntime 'org.scala-lang.modules:scala-xml_2.11:1.0.3'
}

groovy-library

Groovy ライブラリ用のプロジェクト。

gradle init --type groovy-library

ディレクトリはこんな状態になります。 f:id:Naotsugu:20150425014922p:plain

build.gradle は以下の内容で生成されます。

// Apply the groovy plugin to add support for Groovy
apply plugin: 'groovy'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // We use the latest groovy 2.x version for building this library
    compile 'org.codehaus.groovy:groovy-all:2.4.0'

    // We use the awesome Spock testing and specification framework
    testCompile 'org.spockframework:spock-core:0.7-groovy-2.0'
    testCompile 'junit:junit:4.12'
}

pom

pom.xml があるディレクトリで以下のようにするとMaven プロジェクトを変換してくれます。

gradle init --type pom