15

モジュラー ライブラリの開発に Gradle を使用しているとします。私のルート プロジェクトにはサブプロジェクトgeometryalgorithmsvisualizerがあり、それぞれの jar アーティファクトを公開したいと考えています。

今のところ、ルートbuild.gradleには次の部分があります。

apply plugin: 'maven-publish'
publishing {
    publications {
        publishDemos(MavenPublication) {
            groupId 'ru.ifmo.ctddev.igushkin.cg'
            artifactId 'geometry'
            version globalVersion
            artifact project(':geometry').tasks.getByName('jar')
        }
        publishAlgorithms(MavenPublication) {
            groupId 'ru.ifmo.ctddev.igushkin.cg'
            artifactId 'algorithms'
            version globalVersion
            artifact project(':algorithms').tasks.getByName('jar')
        }
        publishVisualizer(MavenPublication) {
            groupId 'ru.ifmo.ctddev.igushkin.cg'
            artifactId 'visualizer'
            version globalVersion
            artifact project(':visualizer').tasks.getByName('jar')
        }
    }
}

私の最初の質問: 出版物を説明する短い方法はありますか? artifactIdたとえば、サブプロジェクトごとに、その名前のセットを含む出版物が必要であると述べたいと思います。


次に、私のサブプロジェクトは、 と の両方のクラスに依存してalgorithmsいますが、この時点では、jar ファイルには依存関係が含まれていません。visualizergeometrygeometryalgorithmsalgorithms

それで、ある種の自動依存性を提供する方法はありますalgorithmsgeometry? はいの場合、どうすればよいですか?いいえの場合、モジュラー ライブラリを提供する慣用的な方法は何ですか? 代わりに、依存関係を持つ jar をアセンブルする必要がありますか?

UPD:アーティファクトと依存関係の両方を取得するため、artifact ...単に使用する代わりに を使用する必要があるのは正しいですか? from project(':...').components.javaを使用する場合、依存関係を個別に選択するにはどうすればよいartifact ...ですか?

4

1 に答える 1