0

Gradle プロジェクトでは、依存関係を次のように設定しています。

dependencies {
    compile group: 'com.our_organization.lib', name: 'Libraries', version: '5.+'
    compile group: 'commons-io', name: 'commons-io', version: '2.4'
}

ライブラリの最新リリース バージョンを使用し、完全に動作します。

次に、ビルドした jar を次の方法で Artifactory にリリースします。

artifactory {
    contextUrl = artifactory_contextUrl
    publish {
        repository {
            repoKey = publicationRepoKey
            username = artifactory_user
            password = artifactory_password
            maven = true
        }
    }
}

ほとんどの場合、これは正常に機能します。

ただし、artifactory に移動して特定のバージョンの xml を取得すると、その依存関係は次のようにリストされます。

<dependencies>
  <dependency org="com.our_organization.lib" name="Libraries" rev="5.+" />
  <dependency org="commons.io" name="commons.io" rev="2.4" />
</dependencies>

これは、ビルドに使用された特定のライブラリ バージョンに自分のバージョンをリンクできないことを意味します。

私がやりたいのは、アーティファクトに与えられた依存バージョンを、ビルドで使用される特定の解決済みバージョンにすることです。

私はいくつかのことを調べましたが、すべて非常にハックであり、より良い方法が必要だと感じています。

これが私が考えた/試したことです:

  1. 自分で依存関係を解決し、gradle 依存関係 dsl で特定のバージョンを設定すると、gradle に特定のバージョンのように見えます。アイビーを使用して依存関係の解決されたバージョンを取得することは、より困難であることが証明されています。
  2. xml を書き込んだ後、artifactory に送信する前にいじくり回します。これは非常に多くのレベルで悪く、将来壊れる傾向があります。
  3. 別の gradle プロジェクトを使用して解決されたバージョンを特定し、それをプロパティ ファイルに書き込みます。このファイルは、#1 と同様に使用されます。これはやり過ぎのような気がします。

全体として、これは単純なように思えますが、私の人生では、適切な解決策を見つけることができません。

4

2 に答える 2

0

ポスト

Gradle で、実際に使用されているバージョンに解決された動的依存関係を持つ POM ファイルを生成するにはどうすればよいですか?

この問題を正確に解決します。ただし、Artifactory プラグインの代わりに maven-publish プラグインを使用する必要があります。

于 2015-09-02T12:57:43.477 に答える
0

Gradle が pom.xml で何をするかはわかりませんが、Artifactory の機能を使用して、Gradle の代わりに最新バージョンを取得してみてください。

于 2013-07-14T08:10:54.027 に答える