我应该使用Maven的Android应用程序?
我主要使用Java编写代码,并将Maven用于我的所有项目。 我非常喜欢使用Maven,因为它很容易下载源代码和文档,更重要的是,我不需要将外部库的副本保存在我的项目源代码文件夹下。
我已经开始开发一个Android应用程序,我发现Eclipse的Android插件非常好。 但是,所有提供的示例都不是maven项目,所以我不知道如果使用maven,我还是会获得Android插件的所有function,或者使用Maven是否有任何缺点。
所以问题是:
- Android插件的Eclipse的所有function仍然工作?
- 是否会比使用正常的构build更困难(我相信这是ant,但不是确定的)
- 任何其他的缺点,例如最终应用程序的文件大小(Maven往往把许多东西捆绑在一起),或者在Maven仓库(这可能与Android不同)上获取最新的库的困难。
请不要指向这个Android项目的Maven支持?
我想从开发人员的经验回答。 我已经知道可以使用maven的Android应用程序。 我需要知道的是我是否应该使用它。
我的团队目前的任务是开发一个Android应用程序。 由于它是一个小应用程序,也是某种原型,我们决定评估Maven和Android Eclipse插件。
简而言之:在两个开发者花了三天的时间之后,我们无法获得Maven项目中的Android Eclipse插件function。
- R级没有根据我们的资源更新
- 我们无法直接从Eclipse中的仿真器和/或附加设备上启动应用程序
由于这些问题真的阻碍了我们的发展,我们决定在没有Maven的情况下开发应用程序。 但是,如果你们中的任何一个知道如何解决这些问题,我很乐意听到一个解决scheme!
如果你想快速运行testing,你几乎被迫使用maven。 由于robolectric是要走的路。 他们说Roboletric可能更容易通过Eclipse下的maven来设置(他们使用的是IDEA)。
这就是说,你读过这个post还是那个 ? 你得到了什么错误信息?
我做错的典型事情是:
- 使用maven> = 3.0.3! 并避免在eclipse中embedded的东西。 (如果我没有记错的话,这仅仅是robolectric所必需的)
- 按照robolectric页面上描述的〜/ .m2 / settings.xml来设置androidpath
- 在local.properties和Preferences – > Android – > SDK位置下指定你的android sdk
- 进一步阅读这个 ,或者只是尝试这个为我工作的mavenized robolectric示例本身。 将其导入为现有的Maven项目。
-
通过maven-android-sdk-deployer和安装必要的sdk(在我的例子中是2.2_r3)
export ANDROID_HOME=/path/to/android/sdk mvn install -P 2.2
-
我有没有提到这个奇怪的工具: 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轻松地testing和debugging我的项目了。
众所周知,Android Devolopment从Eclipse迁移到Android Studio 。
Android Studio构build系统由Gradle的Android插件组成。 Gradle是一个高级构build工具包,用于pipe理依赖关系,并允许您定义自定义构build逻辑。
构build系统是独立于Android Studio的,因此您可以从Android Studio或从命令行调用它。
Android Studio构build系统支持远程Maven依赖关系。 如您所知,Maven是一个stream行的软件项目pipe理工具,可帮助使用存储库组织项目依赖关系。
您可以通过Android Studio的命令行在您的机器上构build您的Android应用程序 ,从而避免Eclipse中插件的混乱。
查看使用Maven构buildAndroid应用程序的教程。
请参阅这里了解更多关于Gradle构build
我build议避免Maven在Android上进行专业开发。 原因如下:
- Google正在投入时间来保持Android Studio与Gradle的整合。 所以maven是额外的工作。
- 如果您必须使用Maven(例如pipe理相关的库),那么Gradle可以使用Maven插件。 请参阅https://docs.gradle.org/current/userguide/maven_plugin.html
- 通过使你的主要构build工具maven你会下载大量的依赖,你不需要,你不知道他们来自哪里。 这与您的Android应用程序,您理想只需要您的代码和Android平台的概念相反。 换句话说,你涉及到很多不需要的库/代码。
简而言之,使用maven作为您的Android构build工具将会增加更多的工作,并创buildpipe理噩梦(IMO)。
试试这个来说明:
- 在炉子上加热锅。
- 拿起一个生鸡蛋。 说“这是你的Android应用程序”。
- 把鸡蛋打入锅里。
- 说:“这是你的android应用程序在maven-with-rats-nest-dependency-tree-and-unknown-code-downloads-that-you-don't-need-无论如何。
- 等待鸡蛋烧到一个脆。
- 说,“这是你的Android应用程序时,Maven构build与您的Android应用程序打包一个无用的或不良的库。”
我已经能够使用Android开发工具的Eclipse(开普勒)和Android的Maven Eclipse 1.0.1(m2e-android)的Android应用程序开发使用maven。 按照这些说明http://rgladwell.github.io/m2e-android/ 。 在你用android quickstart archetype创build你的新项目后,修改你的pom.xml。 添加android平台版本。 Eclipse(m2e)将在android-maven-plugin声明中的pom.xml上报告一个错误,以解决这个问题, 在maven pom xml文件中错误地跟随alexander的响应:构buildAndroid项目 。 然后使用eclipse更新maven项目,应该是这样的。
来自我在Intellij的经验。 我使用Maven作为我的android开发过程的构build自动化工具。 我从Packtpub的“Android应用程序开发与Maven”开始学习。