2017-01-24 5 views
0

私は別々に保管したい2つの別々のプロジェクトがあります。しかし、時にはそれらを簡単に複合ビルドに結合できるようにしたいと考えています。他の開発者に影響を与えずにしばらくすることができればいいこともあります。だから、私はこのような何かをしたい:バージョン管理にチェックインされるだろうはsettings.gradleの設定ファイルを含む

私の主なsettings.gradleは、次のようになります。

// normal stuff 
if (File('extra-settings.gradle).exists()) { 
    // This is what I don't know how to do 
    includeOtherSettingsFile('extra-settings.gradle') 
} 

ではありませんそして、余分なsettings.gradleを、私は一時的な複合ビルドを作るために余分なsettings.gradleファイルを追加することができ

includeBuild('../anxml') { 
    dependencySubstitution { 
     substitute module('com.analyticspot.ml:framework') with project(':framework') 
    } 
} 

この方法:ソース管理にチェックインし、次のようになります。他のプログラマーに影響を与えることなく、いくつかのコミットのためにそのようにしておくか、一時的な変更をsettings.gradleに間違ってコミットすることを心配してください。

(私たちはなどBUILDSRC、ROOTDIRを使用)私はPreziプライドを知って、それは偉大なようだが、私たちの現在のビルドでは動作しません

それを行うことができますか?

+0

は、私は '余分-settings.gradle' .ymlを作ることができるように私には発生します。それをここで解析して、gradle comandsなどに変換してください。それはうまくいくでしょうが、はるかに多くの作業で柔軟性がありません。純粋なGradleソリューションを期待しています。 –

答えて

1

settings.gradleは、私はあなたが行うことができます推測しているので、apply(Map)方法がありSettingsインスタンスに対して実行されます。

// use Settings.getRootDir() so that it doesn't matter which directory you are executing from 
File extraSettings = new File(rootDir, 'extra-settings.gradle') 
if (extraSettings.exists()) { 
    apply from: extraSettings 
} 
+0

ありがとうございます。修正が必要なバグがいくつかありますが、数日後にこれを試して報告します。 –

+0

魅力的な作品です。予想以上に簡単です –

関連する問題