次のような設定のサンプル プロジェクトがあります。
/root
+ Pure Java Lib
+ Android Test Lib
+ Android Test Project
どこ 'テストプロジェクト' は ' に依存しますテストライブラリ'、そして最後は'純粋なJavaライブラリ'プロジェクトをコンパイルしてこのセットアップを起動すると、問題なく動作します。
現在、以前の Eclipse ワークスペースをインポートして Android Studio で作業することを考えていますが、問題はプロジェクトの設定が異なることであり、このままにしておきたいと考えています。
たとえば、前の例を使用する場合:
/root
+ Android Test Lib
+ Android Test Project
/Some Other folder (another repository for example)
+ Pure Java Lib
さまざまな設定を試しましたが、親フォルダの範囲外のプロジェクトを参照する方法が見つかりませんでした('根(この例では ' )です。
多くのプラットフォーム/モジュールでは、「..」を使用してフォルダー内を上に移動できますが、これは機能しませんでした。おそらく、使い方が間違っているのでしょう。
Gradle でこれをどうやって実現できるか知っている人はいますか?
アップデート
もっと一般的なことを言ってみます:
/C:/
/Project A
+ Module 1 - Pure Java
+ Module 2 - Android Test Lib
+ Module 3 - Android Test Project
/Project B
+ Module 1 - Pure Java
+ Module 2 - Pure Java
+ Module 3 - Pure Java
モジュール1を使用したいと思いますプロジェクトB、プロジェクトA。
更新: 09-03-19
私は今これを見て、更新しなければなりません... ほぼ 6 年が経ち、今では私は賢くなり、問題は「真実の源」の概念を私が誤解していたことにあると断言できます。
ライブラリへの参照が 1 つあるというのは便利な概念であり、「真実の源」のように思えるかもしれませんが、本当の「真実の源」は、各プロジェクトがそのライブラリで使用しているコードのバージョンになります。ライブラリ自体にバージョンがあるためです。多くのバージョンがあり、「真実の源」はライブラリを使用しているプロジェクトに関連しています。
正しい方法は、ほとんどの開発者が好まないもの、つまり Git サブモジュールを使用することです。また、各プロジェクトでソースを複製します。各プロジェクトで異なるバージョンのコードが使用される可能性が高くなります。
しかし、すべてのプロジェクトですべてのライブラリの最新かつ最高のバージョンを使用することを目指す必要があります。それ自体が課題です。
これがライブラリ ソースを使用してプロジェクトを開発する適切な方法である理由は、これが拡張可能であるためです。つまり、それぞれ独自のライブラリ構成を持つプロジェクトを何百も持つことができます。
ベストアンサー1
Some Other Folder が gradle プロジェクトであると仮定すると、settings.gradle ファイルに次のような内容を追加できます。
include ':module1'
project(':module1').projectDir = new File(settingsDir, '../Project B/Module 1')