web-dev-qa-db-ja.com

AndroidアプリにMavenを使用する必要がありますか?

私は主にJavaでコーディングし、すべてのプロジェクトでMavenを使用します。ソースとドキュメントを簡単にダウンロードできるため、Mavenを使用するのが大好きです。さらに重要なのは、外部ライブラリのコピーをプロジェクトのソースコードフォルダーに保存します。

Androidアプリケーションの開発を開始しましたが、Android Eclipse用のプラグインは非常に優れています。しかし、提供されているすべての例はmavenプロジェクトではないため、 Mavenを使用する場合でも、Androidプラグインからすべての機能を取得できるかどうか、またはMavenを使用することによる欠点があるかどうかがわかりません。

だから質問は:

  1. Android Eclipse用プラグインのすべての機能は引き続き機能しますか?
  2. 通常のビルドを使用するよりも難しくなりますか?(Antだと思いますが、確実ではありません)
  3. その他の欠点、例えば最終的なアプリケーションのファイルサイズ(Mavenは多くのものを一緒にバンドルする傾向があります)、またはMavenリポジトリーで最新のライブラリーを取得することの難しさ(これはおそらくAndroidでは異なります)。

これを指さないでください AndroidプロジェクトのMavenサポート?

経験豊富な開発者からの回答をお願いします。 Androidアプリにmavenを使用できることはすでに知っています。知っておく必要があるのは、それを使用するかどうかだけです。

48
gigadot

私のチームの現在のタスクは、Androidアプリです。これは小さなアプリであり、プロトタイプの一種であるため、MavenとAndroid Eclipseプラグイン。

つまり、2人の開発者が3日間を費やした後、MavenプロジェクトでAndroid Eclipseプラグイン機能を取得できませんでした。

  • Rクラスはリソースに従って更新されませんでした
  • エミュレーターや接続されたデバイスのEclipse内から直接アプリケーションを起動できませんでした

開発を妨げるこれらの問題のため、Mavenなしでアプリを開発することにしました。しかし、これらの問題を修正する方法を知っている人がいれば、私は解決策を聞きたいです!

35
Michael

高速で実行するテストが必要な場合は、mavenを使用する必要があります。ロボレクトリックがその時の道なので。そして、彼らは、RoboletricはおそらくEclipseの下のmavenを介して設定する方が簡単だと述べました(彼らはIDEAを使用しています)。

とはいえ、 この投稿 または それ を読みましたか?そして、あなたは正確にどんなエラーメッセージを得ましたか?

私が間違った典型的なこと:

  1. maven> = 3.0.3を使用してください!そして、Eclipseに埋め込まれたものは避けてください。 (私が正しく覚えていれば、これはロボレクトリックにのみ必要でした)
  2. robolectricページで説明されているように〜/ .m2/settings.xmlを使用して、Androidパスを設定します
  3. Android SDKもlocal.propertiesで適切に指定し、[設定]-> Android-> SDKの場所
  4. thisthat をさらに読むか、 mavenized robolectric の例自体を試してください。それは私のために働いた。既存のmavenプロジェクトとしてインポートします。
  5. Maven-Android-sdk-deployerを介して必要なsdk(私の場合は2.2_r3)をインストールし、

    export Android_HOME=/path/to/Android/sdk
    mvn install -P 2.2
    
  6. そして、私はこの奇妙なツールについて言及しました: m2e-Android -なぜEclipseでこれほど多くのものが必要なのかわからない...ここでソフトウェアの更新 http://rgladwell.github.com/m2e-Android/updates/master/m2e-Android/

うまくいけば、私はすべてのステップを正しく思い出しました。幸運を!

更新:

Androidが奇妙なものになるため、Eclipseでmavenを使用せずに通常のIDEに戻すと、 http://groups.google.com/group/robolectric/browse_thread/thread/ ac814076c40d9df1

しかし、このMavenアドベンチャーのいいところは、NetBeansを介してプロジェクトを簡単にテストおよびデバッグできるようになったことです:)

12
Karussell

ご存じのとおり、Android DevolopmentはEclipseからAndroid Studioに移行されました)。

Android Studioビルドシステムは、AndroidプラグインGradle。Gradleは、依存関係を管理し、カスタムビルドロジックを定義できる高度なビルドツールキットです。

ビルドシステムはAndroid Studioから独立しているため、Android Studioまたはコマンドラインから呼び出すことができます。

Android Studioビルドシステムは、リモートのMaven依存関係をサポートします。ご存知のとおり、Mavenは人気のあるソフトウェアプロジェクト管理ツールで、リポジトリを使用してプロジェクトの依存関係を整理するのに役立ちます。

AndroidアプリをマシンのコマンドラインからAndroid Studioからビルドできます。 Eclipseにあるようなプラグインの混乱。

チェックアウト this ビルドのチュートリアルAndroid Mavenを使用したアプリ。

ここを参照 for Gradleビルドの詳細

2

Androidでの専門的な開発ではMavenを使用しないことをお勧めします。理由は次のとおりです。

  1. グーグルは、Gradleと統合されたAndroid Studioを維持するために時間を費やしています。したがって、Mavenはすぐに追加の作業です。
  2. Mavenを使用する必要がある場合(依存ライブラリの管理など)、GradleはMavenプラグインを使用できます。 https://docs.gradle.org/current/userguide/maven_plugin.html を参照してください
  3. Mavenを主要なビルドツールにすることで、不要な大量の依存関係をダウンロードすることになり、それらがどこから来たのかわからなくなります。これは、Androidアプリの場合、理想的にはコードだけが必要であり、Androidプラットフォームの場合です。つまり、多くのあなたが必要としないライブラリ/コードの。

つまり、MavenをAndroidビルドツールとして使用すると、必要以上の作業が追加され、管理の悪夢(IMO)が作成されます。

これを試してみてください:

  1. ストーブの上で鍋を加熱します。
  2. 生卵を持ち上げます。 「これはあなたのAndroidアプリケーションです。」と伝えます。
  3. 卵を鍋に入れます。
  4. 「これはあなたのAndroid maven-with-rats-nest-dependency-tree-and-unknown-code-downloads-that-you-don't-need-notway-onのアプリケーションです。」と言います。
  5. 卵がカリカリになるまで焼きます。
  6. 「これはあなたのAndroidアプリケーションです。MavenビルドがAndroidアプリケーション。
1
Coder Roadie

Intellijでの自分自身の経験から。 Android開発プロセスのビルド自動化ツールとしてMavenを使用しました。Packtpubの「Android Application Development with Maven」でそれを学び始めました。

0
Esmaeil MIRZAEE

Androidアプリケーション開発Android Development Tools for Eclipse(Kepler)and Android for Maven Eclipse 1.0.1(m2e-Android)。次の手順に従ってください http://rgladwell.github.io/m2e-Android/ 。Androidクイックスタートアーキタイプでpom.xmlを変更します。Androidプラットフォームバージョンを追加します。Eclipse(m2e)は、Android-maven-plugin宣言のpom.xmlでエラーを報告します。この問題を修正するには、 maven pom xmlファイルのエラー:ビルドAndroidプロジェクト のアレクサンダーの応答に従います。次に、Eclipseを使用してmavenプロジェクトを更新します。

0
robvelor