次の設定のサンプルプロジェクトがあります。
/root
+ Pure Java Lib
+ Android Test Lib
+ Android Test Project
「Test Project」は「Test Lib」に依存し、最後は「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 つの ref を持つことは概念を持っていると便利ですが、「真実のソース」のように見えるかもしれませんが、本当の「真実のソース」は、各プロジェクトがそのライブラリで使用しているコードのバージョンです。ライブラリ自体にはバージョンがあります。多くのバージョンと「真実のソース」は、ライブラリを使用しているプロジェクトに関連しています。
正しい方法は、ほとんどの開発者が好まないもの、つまり git サブモジュールを使用することです。はい、各プロジェクトでソースを複製すると、各プロジェクトが異なるバージョンのコードを使用する可能性が高くなります。
ただし、すべてのプロジェクトですべてのライブラリの最新かつ最高のバージョンを使用することを目指す必要があります..それ自体が課題です.
これがライブラリ ソースを使用してプロジェクトを開発する正しい方法である理由は、これがスケーリングされるためです...それぞれ独自のライブラリ構成を持つ何百ものプロジェクトを持つことができます。