2017-12-13 19 views
0

私はGradleをかなり新しくしており、タスク駆動のアプローチとカスタマイズ可能性に魅了されています。だから私は、基礎を超えて何かをする方法を理解してくれることを願って質問があります。Gradle:ファイルからのプロジェクトの依存関係

プロジェクトの依存関係に関する情報を含む単純なテキストファイルがあるとします。例えば、これらは、私は次のように、このファイルから線に沿ってファイルを生成するいくつかのコード持っていないことを

- dependency1 
    from: 'foobar' 
    version: '1' 
- dependency2 
    from: 'foobaz' 
    version: '1' 

注のようなもの:

compile 'commons-lang:commons-lang 2.6' 
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4' 

は、設定する方法はあります私のプロジェクトは私のプロジェクトの依存関係がこのファイルから取られるように(排他的ではない)?

テキストファイルは、他のタスク(Dockerコンテナに追加するファイルなど)で使用される他のアーティファクトを生成するためにも使用されるので注意してください。依存関係は通常はなく、代わりにテキストファイルを生成しますが、現時点ではそう簡単ではありません。

+0

あなたは[Gradleの-のmaven-シェア]に興味があるかもしれません(https://github.com/uklance/gradle-maven-share)と[gradle-maven-transform](https://github.com/uklance/gradle-maven-transform)プラグインです。最初は、pom.xmlを解析することによって、gradleモデルへの依存関係を追加します。 2つ目は、pom.xmlからグラデルファイルを生成し、その後、 –

答えて

0

はい、ファイルを解析してリストを作成する独自のGroovy関数を作成できます。次に、依存関係の閉鎖にこのマップを渡すことができます。

また
List<String> compileLibraries() { 
    // ... parse yaml and return list 
} 

dependencies { 
    compile compileLibraries() 
} 

、特別BUILDSRCサブフォルダにカスタムのGradleサブプロジェクトを設定し、そこにあなたのヘルパー関数を作成することを検討し、YAML-の解析ライブラリを使用します。

詳細については、この古い記事を参照してください:https://discuss.gradle.org/t/programmatically-adding-dependencies/7575/12 BUILDSRCプロジェクトのための

そして、ここで: https://docs.gradle.org/current/userguide/organizing_build_logic.html#sec:build_sources

関連する問題