6

アーティファクト リポジトリのコピーと再編成を実行する gradle ビルド タスクを作成したいと考えています。私はこれまでに得ました:

apply plugin: 'maven'
apply plugin: 'maven-publish'

repositories {
  ...
}

configurations {
  ...
}

dependencies {
  ...
}

task doit << {
  configurations.each { configuration ->
    println configuration
    configuration.files.each { file ->
      println "  f=${file.path}"
    }
    configuration.dependencies.each { dependency ->
      println "  g=${dependency.group}"
      println "  i=${dependency.name}"
      println "  v=${dependency.version}"
      dependency.artifacts.each { artifact ->
        println "    x=${artifact.classifier}"
        println "    n=${artifact.name}"
        println "    u=${artifact.url}"
      }
    }
  }
}

取得できないのは、dependency.artifacts.each() ループ内でダウンロードしたファイルへの参照です。

私にできる最善の方法は、configuration.files を調べて配列にデータを入力することです。次に、アーティファクト メタデータに対する 2 番目のループ セットがファイルと同じ順序になることを願っています。明らかに何かが足りない

多分いくつかの代替方法がありますか?私が実際に望んでいるのは、変更されたメタデータ アイテム (つまり、グループ ID、アーティファクト ID、およびバージョンを変更する必要がある) を含む新しいアーティファクトを発行できるようにする、アーティファクトごとに 1 つのタスクのセットを生成することです。

4

1 に答える 1

5

要求されたものではなく、解決された依存関係/アーティファクトを反復処理したい。何かのようなもの:

configuration.resolvedConfiguration.resolvedArtifacts.each { artifact ->
    println artifact.moduleVersion.id.group
    println artifact.moduleVersion.id.name
    println artifact.moduleVersion.id.version
    println artifact.file
}
于 2013-10-15T23:24:30.920 に答える