gradleスクリプトを更新して、リポジトリのローカルインスタンスがあるかどうかを確認しようとしています。それ以外の場合はダウンロードしてください。本質的には、開発者は私たちが共有リポジトリをローカルで作業するときに、mavenにプッシュしたくないのです。しかし、私たちの展開パイプラインの一部として、私たちのツールはそれを引き出す必要があります。レポがまだ古くなっていることを心配しているわけではありません。しかし、私はこのステートメントを書く方法がわかりません。リポジトリにローカルインポートがある場合は、それ以外の場合はmaven経由でダウンロードしてください
現在の解決策は、常にrepoをプルすることです。ここでも目標は少しだけコントロールし、レポと同期する必要はありません。
configurations.all {
// check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
compile ('com.aaaa.commons:1.2.3') { changing=true }
欲望
if(path/to/project exists){
import the local dependency
}
else{
compile ('com.aaaa.commons:1.2.3') { changing=true }
}
EDIT
問題は、それがモジュールとしてインポートするために私を必要としています。それは本質的に私のアプリケーションに対処しています。それはまさに私が望まないものです。私は
include ':commons'
project(':commons').projectDir = new File(rootProject.projectDir,
'/Users/asdasd/Repos/android-commons')
をすれば、私たちは、私は私のライブラリを選択したルート持っていた..私は、ファイルツリーの1以上をダウン選択するために必要
Error:Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :commons.
編集編集 を取得します。私はアンドロイドコモンズではなくコモンズを必要とした。私は同じようにコンパイルされるまで、私は実際にライブラリを使用することができませんでした。そこから
mymainproject
android-commons
android-commons.iml
build
build.gradle
**commons**
私は時々使用
debugCompile project(path: ':commons')
非常に興味深いです。主な問題は、トップレベルのsettings.gradleにinclude ':commons'というモジュールを追加しようとすると、その名前のアプリケーションに空のディレクトリが作成されるということです。私はあなたのコードをapp/build.gradleで試しています – StarWind0
私は 'settings.gradle'に条件付きプロジェクトのインクルードの例を私の答えに追加しました。 –