4

カスタムherpderpGradle タスクを作成しました。

task herpderp(type: HerpDerpTask)

class HerpDerpTask extends DefaultTask {
    @TaskAction
    def herpderp() {
        println "Herp derp!"
    }
}

これにより、このタスクを他の Gradle ビルドに追加して、他のプロジェクトのビルド呼び出し内で使用できます。

gradle clean build herpderp

現在、次のマルチプロジェクト設定があります。

myapp/
    myapp-client/
        build.gradle
        src/** (omitted for brevity)
    myapp-shared/
        build.gradle
        src/** (omitted for brevity)
    myapp-server
        build.gradle
        src/** (omitted for brevity)
    build.gradle
    settings.gradle

どこmyapp/build.gradleにある:

subprojects {
    apply plugin: 'groovy'
    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'

    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        compile (
            'org.codehaus.groovy:groovy-all:2.3.7'
        )
    }
}

そしてどこにmyapp/settings.gradleある:

include ':myapp-shared'
include ':myapp-client'
include ':myapp-server'

myapp親ディレクトリに移動して実行しgradler clean build herpderpherpderpタスクをmyapp-clientandmyapp-sharedプロジェクト (サーバー プロジェクトではなく)でのみ実行できるようにしたいと考えています。

そのため、別のカスタム タスクまたはその内部にある種のクロージャ/メソッドが必要なようmyapp/build.gradleです。

  1. 実行しclean buildます。それから
  2. cd( ) を にドロップしmyapp-clientて実行しherpderpます。その後
  3. にドロップしmyapp-sharedて実行しherpderpます。

親ビルド コマンドから呼び出され、クライアントおよび共有サブプロジェクトでのみ実行されるようにするには、ファイルにを追加する必要がありますか?herpderp

4

2 に答える 2