次の設定のサンプルプロジェクトがあります。
/root
+ Pure Java Lib
+ Android Test Lib
+ Android Test Project
「テストプロジェクト」は「テストライブラリ」に依存し、最後は「Pure Java Lib」に依存します。プロジェクトの コンパイルとこのセットアップの起動は問題なく動作します。
私は今、以前のEclipseワークスペースをインポートしてAndroidスタジオで作業することを考えています。問題は、プロジェクトのセットアップが異なるため、この方法で維持したいと考えています。
たとえば、前の例を使用する場合:
/root
+ Android Test Lib
+ Android Test Project
/Some Other folder (another repository for example)
+ Pure Java Lib
多くの構成を試しましたが、親フォルダーのスコープ外(例の場合は「root」)のプロジェクトを参照する方法が見つかりませんでした。
多くのプラットフォーム/モジュールでは、「..」を使用してフォルダー内を上に移動できますが、これは私にとってはうまくいきませんでした。おそらく間違って使用した可能性があります。
誰かがこれが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
プロジェクトAで、プロジェクトBのモジュール1を使用したいと思います。
更新:09-03-19
私はこれを今見て、更新しなければなりません...ほぼ6年後、今日、私はより賢くなり、問題は「真実の源」の概念を誤解したことであると間違いなく言えるでしょう。
ライブラリへの参照を1つ持つことはコンセプトを持つのに適していますが、「真実のソース」のように見えるかもしれませんが、REALの「真実のソース」は、各プロジェクトがそのライブラリを使用しているコードのバージョンです。ライブラリ自体にはバージョンがあります。多くのバージョンの「真実のソース」は、ライブラリを使用しているプロジェクトに関連しています。
正しい方法は、ほとんどの開発者が好まないもの、つまりgitサブモジュールを使用することです。そうすれば、各プロジェクトでソースを複製すると、各プロジェクトで異なるバージョンのコードが使用される可能性が高くなります。
ただし、すべてのプロジェクトですべてのライブラリの最新かつ最高のバージョンを使用することを目指す必要があります。これはそれ自体が課題です。
これがライブラリソースを使用してプロジェクトを開発する正しい方法である理由は、これがスケーリングするためです...それぞれ独自のライブラリ構成を持つ何百ものプロジェクトを持つことができます。