2017-11-18 9 views
0

私はcoreclientを含むマルチモジュールのgradleプロジェクトを持っています。 clientこのように宣言されcoreに依存:マルチプロジェクトgradleビルドでの依存バージョン番号の変更

dependencies { 
    compile project(':core') 
} 

私はアイビーにcoreclientを公開またはcoreからclientから依存関係をMavenの場合、現在core(例えば1.0.0)のために定義されている正確なバージョンを使用します。

これを変更する方法はありますか? coreがマイナーリリース間で互換性があることが保証されているとします。だから1.0.0の代わりに、私は依存関係をバージョン1.+にしたいと思います。私はヘルパー関数を作成し、生成のpom.xmlにバージョンを交換するために

+1

HTTPS ://docs.gradle.org/current/userguide/publishing_maven.html#sec:modifying_the_generated_pom –

+0

あなたの解決策を答えに入れるのをためらってください。 –

+0

複数のモジュール間で緊密に結合されているので、なぜそれをしたいのでしょうか? – chenrui

答えて

0

// helper function to replace dependency version in maven pom.xml 
def replaceDependencyVersion(root, groupId, artifactId, version) { 
    // replace version 
    root.dependencies.dependency.findAll() { node -> 
     node.groupId.text() == groupId && node.artifactId.text() == artifactId 
    }.each() { node -> 
     node.version*.value = version 
    } 
} 

この機能は、バージョン番号を交換するために発行して使用することができます。

// publishing 
publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 

      pom.withXml { 
       replaceDependencyVersion(asNode(), 'com.test', 'core', '1.+') 
      } 
     } 
    } 
} 
関連する問題