0

基本プラグインを使用していくつかのアーティファクトを公開したいと考えています。これは私のビルドがどのように見えるかです:

apply plugin: 'base'

group = 'eu.com'
version = '0.9'

def winCdZip = file('dist/winCd.zip')

configurations {
    wincd
}

repositories {
    ivy  {
        url 'http://ivy.repo'
    }
}

artifacts {
    wincd winCdZip
}

buildscript {
    repositories {
        ivy  {
            url 'http://ivy.repo'
        }
    }
    dependencies {
        classpath group: 'eu.com', name:'MyCustomTask', version:'0.9-SNAPSHOT', configuration: 'runtime'
    }
}

buildWincd {
    // call MyCustomTask; is it possible to call it in this way?
    MyCustomTask {
        // pass few parameters required by this task
    }
    // I know that it's impossible to call zip in this way but I don't want to create another task
    zip {
        // build zip and save it in 'winCdZip'
    }
}

uploadWincd {
    repositories { add project.repositories.ivy }
}

そして、それらは私が解決すべき問題です:

  1. ネストされたタスクを作成することは可能ですか?
  2. 新しいタスクを作成せずにクロージャーを使用してzipを呼び出すことは可能ですか?
  3. クロージャーを使用してカスタムタスクを呼び出すことは可能ですか (2 番目のポイントと同じ例)?

この方法でzip /カスタムタスクを作成できます

task myZip(type: Zip) {
    // do the job
}

このように呼び出すことは可能ですか?

zip {
    // do the job
}

クロージャーを使用してタスクを呼び出すことができない場合、どうすればよいですか? 新しいタスクを作成することが唯一の方法ですか? ネストされたタスクを作成できますか?

4

1 に答える 1