0

ルートプロジェクトに、いくつかのサブプロジェクトのカスタムTARを作成するタスクを作成したいと思います。

task archive(type: Tar) {
    project.logger.info("Tar bundle :: ")
    baseName = project.baseName
    destinationDir = new File(project.buildDir.path)
    archiveDir = new File(project.buildDir.path)
    compression = Compression.GZIP
    from (archiveDir)
}

このタスクを見つけましたが、必要なのは、subproject.nameを送信し、タスクを呼び出すサブプロジェクトのbuildDirとソースディレクトリをタスクに使用させるサブプロジェクトです。次に、アーカイブをサブプロジェクトの/targetにも保存します。

これは、サブプロジェクトごとに新しいタスクを作成せずに可能ですか?

4

1 に答える 1

1

すべてのサブプロジェクトが独自の Tar を作成することになっている場合、サブプロジェクトごとに 1 つのタスクを作成する必要があります。これは、タスク宣言を でラップするのと同じくらい簡単subprojects { ... }です。project.また、コードから のすべての出現箇所とbaseName行全体を削除する必要があります。(とにかく、これはすべて冗長です。)

new File(project.buildDir.path)と同じbuildDirです。の代わりにlogger.info("Tar bundle :: ")、おそらく が必要ですdoFirst { logger.info("Tar bundle :: ") }。それ以外の場合、このメッセージは、実行されるタスクに関係なく、ビルドごとにログに記録されます。

于 2012-10-18T12:48:53.097 に答える