2016-12-01 5 views
1

ローカルに開発されたライブラリをいくつか共有するプロジェクトがいくつかあります。これらのライブラリはかなり静的であることから、それらを使用するアプリケーションが増加するにつれて柔軟に更新されるまで様々です。Android Studioに複数のライブラリを持つベストプラクティスのプロジェクトレイアウト

私は、デバッグ/アップデートの目的で、私のプロジェクトの一部として持っていると便利です(新しいライブラリのバージョンがリリースされたとき、メインのアプリケーションプロジェクトの実行中にバグが発見された場合は必要に応じてライブラリをテスト/

ビルド時には、プロジェクトを再ビルドするときに(時には大きな)ライブラリも再構築するのが苦痛です。

私の見解では、明示的に行われない限り、ライブラリのいくつかが再構築やクリーニングを行わないように設定できるのが理想的です。または、JAR/AARライブラリとフルモジュールの間で切り替えることができますか。

この時点で、より良い方法があるのだろうかと思います。

プロジェクトに編集/更新用のライブラリを含めたいが、すべての時間を再構築したくない場合は、方法があり、何がベストプラクティスですか?

FWIW、私が現在持っている基本的な構造は次のとおりです。

MainAppに

  • プラットフォーム固有のコード
  • アプリ用ライブラリ(アプリケーションに固有の通常のプラットフォームに依存しないコード)
  • ローカルUtilsのlib(かなり動的かもしれませんが、変更なしで何日/週も頻繁に行きます)
  • 他のローカルユーティリティ(かなり静的で、ときどき更新されます)

答えて

0

ライブラリを別のプロジェクトとして作成し、ライブラリ内にmaven pluginを使用してローカルアーティファクトとしてインストールすることができます。あなたのプロジェクトでDeploying an Artifact to the Local Cache in Gradle

で続きを読む、あなたはあなたのルートbuild.gradleでリポジトリにmavenLocalを()を追加する必要があります。

repositories { 
    mavenCentral() 
    mavenLocal() 
} 

そして、あなたのプロジェクトのbuild.gradleに依存関係を追加します。

dependencies { 
    ... 
    compile 'com.your.library:x.y.z' 
    ... 
} 

ローカルネットワークでプロジェクトを共有している場合は、Artifactory by JFrogまたはNexus Repository Manager by Sonatypeのようなリポジトリ管理を使用する必要があります。

+0

応答遅れのお詫び...これは、メインプロジェクトの実行中に必要なときにライブラリソースファイルを変更できることを意味しますか? これはライブラリ/ jarをリンクする別の方法であるかどうかを理解しようとしています。 – RabidMutant

+0

mavenのようなリモートサーバからの依存関係を扱うように動作します。メリットは、ライブラリのコードを変更して、それをmavenのローカルキャッシュに公開できることです。ライブラリコードを変更するたびに、ローカルのmavenにそれを再発行する必要があります。そして、最新のライブラリコードを使用するためにメインプロジェクトを再同期する必要があります。 –

+0

さらに、ライブラリの最新コード(x.y.zバージョンなど)を使用したくない場合は、以前に公開したx.y.yバージョンを使用できます。 –

関連する問題