15

Gradle Jar タスクを使用せずに jar ファイルを作成します (タスク内で Ant タスクを使用する必要があります)。指定したリポジトリに JAR をインストールできるように uploadArchives を構成するにはどうすればよいですか。

デフォルトのアーティファクトをオーバーライドしようとしました

uploadArchives {
    repositories {
        mavenDeployer {
            // some Maven configuration
        }
    }
}

artifacts {
    archives file: file('bin/result.jar')
}

しかし、同じタイプと分類子を持つ 2 つのアーティファクトが存在しない可能性があるというエラーが表示されます。これは、構成をオーバーライドするのではなく、この構成が追加されることを意味します。

4

1 に答える 1

22

そうです、artifactsクロージャーは指定された構成にのみアーティファクトを追加できます(ArtifactHandler APIを参照)。

2つのオプションがあります。

1)ここで説明されているようにアーティファクトフィルターを追加します(45.6.4.1章「プロジェクトごとの複数のアーティファクト」を参照)。これを使用する場合は、次のarchivesように構成を宣言してみてください。

artifacts {
  archives file: file('bin/result.jar'), name: 'result', type: 'jar'
}

このように、アーティファクトフィルターで次のようになります。

addFilter('result') {artifact, file ->
  artifact.name == 'result'
}

2)別のMavenモジュールとしてアップロードします。アップロードしている唯一のjarファイルである場合result.jar、これは良い解決策になる可能性があります。

configurations {
  resultArchives
}

uploadResultArchives {
  repositories {
    mavenDeployer {
      repository(url: "same/url/here")
    }
  }
}

artifacts{
  resultArchives file: file('bin/result.jar')
}

お役に立てれば。

于 2012-07-16T13:33:57.230 に答える