问与答 java-我应该将Maven用于Android应用程序吗?

hastings · 2020-02-22 19:00:05 · 热度: 13

我主要使用 Java 编写代码,并将Maven用于所有项目。 我真的很喜欢使用Maven,因为它很容易下载源代码和文档,而且更重要的是,我不需要将外部库的副本保留在项目源代码文件夹下。

我已经开始开发Android应用程序,并且发现eclipse的Android插件非常好。 但是,所有提供的示例都不是maven项目,因此我不知道是否如果使用maven,是否仍然可以从Android插件中获得所有功能,或者使用Maven是否有任何缺点。

所以问题是:

  1. eclipse的Android插件中的所有功能仍然有效吗?
  2. 它会比使用常规构建困难吗(我相信这是Ant,但不确定)
  3. 任何其他缺点,例如 最终应用程序的文件大小(Maven往往将很多东西捆绑在一起)或在maven存储库上获取最新库的困难(这可能与Android不同)。

请不要指向Android项目的Maven支持?

我想从经验开发人员那里得到答案。 我已经知道可以将maven用于Android应用程序。 我只需要知道是否应该使用它。

猜你喜欢:
共收到 6 条回复
verne #1 · 2020-02-22 19:00:05

我的团队目前的任务是开发一个Android应用程序。 由于它是一个小型应用程序,并且还是某种原型,因此我们决定评估Maven和Android Eclipse插件。

简而言之:两个开发人员花了三天时间之后,我们无法在Maven项目中获得Android Eclipse插件功能。

  • 根据我们的资源,R类未更新
  • 我们无法直接在模拟器和/或连接的设备中的Eclipse内部启动应用程序

由于这些阻碍我们真诚发展的问题,我们决定在不使用Maven的情况下开发该应用程序。但是,如果您知道如何解决这些问题,我很想听听解决方案!

rogelio #2 · 2020-02-22 19:00:06

如果您想要快速运行的测试,则几乎被迫使用maven。 就像是robolectric就是要走的路。 他们说Roboletric可能更容易通过Eclipse(他们正在使用IDEA)下的maven进行设置。

就是说,您阅读过该帖子还是那样? 您究竟得到了什么错误消息?

我弄错的典型事情:

  1. 使用Maven> = 3.0.3! 并避免在日食中嵌入该东西。 (如果我没记错的话,这仅对robolectric才有必要)
  2. 使用robolectric页面上所述的〜/ .m2 / settings.xml设置android路径
  3. 还可以在local.properties中的“首选项”->“ Android”->“ SDK”位置下正确指定您的android sdk
  4. 进一步阅读该内容,或者只是尝试适用于我的经过简化的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 /]

希望我正确地记住了所有步骤。 祝好运!

更新:

在IDE下切换回没有Eclipse的maven的普通Android东西会产生奇怪的现象:[http://groups.google.com/group/robolectric/browse_thread/thread/ac814076c40d9df1]

但是这次Maven冒险的好处是,我现在可以通过NetBeans轻松地测试和调试项目了:)

hugo #3 · 2020-02-22 19:00:07

众所周知,Android开发已从Eclipse迁移到Android Studio。

Android Studio构建系统包含一个用于Gradle的Android插件。 Gradle是一个高级构建工具包,它管理依赖关系,并允许您定义自定义构建逻辑。

该构建系统独立于Android Studio,因此您可以从Android Studio或命令行中调用它。

Android Studio构建系统支持远程Maven依赖项。 如您所知,Maven是一种流行的软件项目管理工具,可使用存储库帮助组织项目依赖性。

您可以从Android Studio在计算机上的命令行中构建Android应用,从而避免Eclipse中出现的混乱的插件。

查看本教程,了解如何使用Maven构建Android应用。

请参阅此处以了解有关Gradle构建的更多信息

teno #4 · 2020-02-22 19:00:08

我建议避免在Maven上进行Android专业开发。 原因如下:

  1. Google正在投入时间来保持Android Studio与Gradle集成。 因此,行家是立即的额外工作。
  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应用程序,它与鼠巢嵌套依赖树和未知代码下载无关,无论如何您都不需要。”
  5. 等待鸡蛋燃烧至酥脆。
  6. 说,“当maven版本将无用或错误的库与您的Android应用程序打包在一起时,这是您的android应用程序。”
luke #5 · 2020-02-22 19:00:10

我已经能够使用针对Eclipse的Android开发工具(Kepler)和针对Maven Eclipse 1.0.1的Android(m2e-android)将maven用于android应用程序开发。 请按照以下说明进行操作[http://rgladwell.github.io/m2e-android/。]使用android quickstart原型创建新项目后,请修改pom.xml。 添加android平台版本。 Eclipse(m2e)将在android-maven-plugin声明中的pom.xml上报告错误,以解决此问题,请遵循亚历山大在maven pom xml文件中的错误中的响应:构建Android项目。 然后使用Eclipse更新Maven项目,应该就是这样。

phillip #6 · 2020-02-22 19:00:11

根据我对Intellij的经验。 我将Maven用作android开发过程的构建自动化工具。 我从Packtpub的“使用Maven开发Android应用程序”开始学习它。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册