読者です 読者をやめる 読者になる 読者になる

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

Java

f:id:Naotsugu:20150224234525p:plain

Build Init Plugin

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

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

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-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'
}

自動作成した後は、大抵リポジトリを以下のように変更して、

repositories {
    mavenCentral()
}

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