19

Android開発用のインフラストラクチャを標準化しており、依存関係管理をAndroidライブラリプロジェクトに組み込んでいます。私の現在のトラックは、m2e-androidでmavenandroidプラグインを使用しています。Android SDK Deployerを使用して、AndroidアーティファクトをArtifactoryリポジトリにアップロードしました。また、プロジェクトにインポートできるいくつかのライブラリを備えた内部フレームワークがあり、ほとんどの場合、正常に機能します。

現在直面している問題は、リソースファイルを含むapklibの依存関係を設定するのが難しいことです。mavenプラグインはクラスパスを正しく構成できますが、apklibに親Androidプロジェクトが参照する必要のあるリソースファイルがある場合、ライブラリプロジェクトをチェックアウトし、ADTを介して親プロジェクトにリンクしない限り、Eclipseはそれらを見つけることができません。

問題https://github.com/rgladwell/m2e-android/issues/8に関するm2e-androidディスカッションを読んだ後、https: //stackoverflow.com/questions/6269816/creating-closed-source-android-libraries#answer- 6270768APKLIBはMavenリポジトリにインストールされません。ADTがクローズドソースのapkライブラリを適切にサポートするまで、Mavenが進むべき道であるとは確信していません。

このようなAndroidプロジェクトへの依存関係をどのように処理しているか知りたいのですが。Mavenを使用する以外にどのような戦略がありますか?

参考までに、これまでに試したことは次のとおりです。

  1. 依存関係の管理はありません。必要なすべてのjarファイルはlibフォルダーに保存され、ソース管理リポジトリにプッシュされます。ライブラリプロジェクトはサブフォルダーとして設定され、使用されているプロジェクトごとにソース管理リポジトリにプッシュされます。Eclipseプロジェクト設定もプッシュされます。標準のADTAntスクリプトで構築されたプロジェクト。
  2. Jarの依存関係をlibsフォルダーに、ライブラリの依存関係をgitサブモジュールとして。標準のADTAntスクリプトで構築されたプロジェクト。
  3. apklibパッケージを使用したライブラリプロジェクトを含む、Mavenによる依存関係管理。apklibsのリソースファイルで問題が発生します。
4

2 に答える 2

8

このビデオでは、FacebookAndroid開発者が依存関係の問題にどのように対処しているかについての洞察を得ることができます:FacebookがAndroid用のFacebookを構築した方法

彼らはそのためにバックを使用します。Buckは、コードとリソースで構成される小さくて再利用可能なモジュールの作成を促進するAndroid用のビルドシステムです。Buckはgithubにあります

これはあなたにとって最善の解決策ではないかもしれませんが、おそらく他の誰かにとっては最善の解決策かもしれません。

于 2013-05-31T12:44:52.210 に答える
4

Android StudioとGradleの登場により、プロジェクトの依存関係に関する問題に直面することはなくなりました。Androidまたはその他。

Gradleは、jarまたはapklib形式のMaven依存関係をサポートします。人気のあるライブラリはapklib(aar)形式にエクスポートされ、Mavenから利用できるようになりました。

于 2014-08-11T19:00:52.557 に答える