Maven/Ant+Ivy 组合构建管理对双平台桌面/Android 部署的敏感性? [英] Sensibility of combined Maven/Ant+Ivy build management for dual platform Desktop/Android deployment?

查看:36
本文介绍了Maven/Ant+Ivy 组合构建管理对双平台桌面/Android 部署的敏感性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正准备开始一个新项目,并想知道如何选择构建管理工具(Maven 和 Ant+Ivy 的非排他性替代品).

I'm currently preparing to start a new project and wondering about the choice of build management tools (non-exclusive alternatives of Maven and Ant+Ivy).

一般情况如下:

  • 小型的多人项目,
  • 所有开发人员都使用 Eclipse 作为 IDE,
  • 两个目标:Android(主要)和 Java SE,
  • 我们将使用 CI(特别是 Jenkins),因此需要某种构建管理.

关于设想的项目结构:

  • 一个通用模块,包含大部分代码和通用依赖项,
  • 一个特定于 Android 的模块,具有特定于 Android 的 deps 和代码,
  • 一个特定于桌面的模块,具有特定于桌面的 deps 和代码.

以及非技术方面的考虑:

And the non-technical considerations:

  • 在项目中,我负责构建管理和 CI,
  • 我有使用 Maven 和 Ant 的经验,但在配置前者方面有更多的实践,
  • 仅了解 Ivy 的基本知识,
  • 我在将 Maven 用于 Android 构建方面的经验非常复杂,尤其是在与 Eclipse 的互操作方面.

目前看起来最好的选择是使用:

Currently it looks like the best choice would be to use:

  1. 用于基础(和桌面)项目的 Maven,
  2. 用于 Android 项目的 Ant+Ivy.

从表面上看似乎一切顺利,但我的直觉告诉我,涉及如此多的技术在实践中最终可能会很痛苦.

On the surface it seems like it will go fine, but my intuition tells me involving so many technologies might end up being painful in practice.

总而言之,我的问题是:

To summarize, my question is:

鉴于条件,是否可以使用块引用中描述的设置,或者我们应该使用纯 Maven/Ant+Ivy(如果是,哪个以及为什么)?

推荐答案

哪个?

我会采用纯 Maven 方法.

Which one?

I would go with pure Maven approach.

您描述的场景非常适合聚合(或多模块)) 项目,从我自己的经验来看,与 Ant 相比,Maven 为管理具有模块间依赖关系的多模块项目提供了一种更高效、更合理、更原生的方式.

The scenario you described is perfectly fit into an Aggregation (or Multi-Module) Project, From my own experience, compare with Ant, Maven provides a more efficient, reasonable and native way for managing multi-module project with inter-module dependencies.

您的项目结构:

my-project/
  common-lib/  <-- classic Java project, build as a jar library
  desktop-app/  <-- classic Java project, build as a jar application
  android-app/  <-- Android project, build as a apk application
  android-app-test/ <-- Android Test project, build as a apk application
  pom.xml

您的根 pom.xml:

Your root pom.xml:

<modules>
  <module>common-lib</module>
  <module>desktop-app</module>
  <module>android-app</module>
  <module>android-app-test</module>
</modules>

通过使用 android-maven-plugin,您可以维护一个从命令行跨团队发布多模块项目的标准和统一方式(更准确地说,android-maven-plugin 用于构建 Android 子模块项目的发布).

By using android-maven-plugin, you can maintain a standard and unified way for release your multi-module project (more precisely, android-maven-plugin is used for building release for Android sub-module project) from command-line cross team.

通过使用两个 Eclipse 插件:m2e 和 m2e-android(均可通过 Eclipse Marketplace 获得),您可以在 Eclipse 跨团队中为导入/开发/调试多模块项目维护标准和统一的方式.

By using two eclipse plugins: m2e and m2e-android (all available via Eclipse Marketplace), you can maintain a standard and unified way for import/develop/debug your multi-module project in Eclipse cross team.

由于Maven有资格管理一切,因此无需使用Ant+Ivy.

As Maven is qualified for managing everything, there is no need to use Ant+Ivy.

这篇关于Maven/Ant+Ivy 组合构建管理对双平台桌面/Android 部署的敏感性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆