什么是 Android Studio 中的 Maven?

2022-09-01 19:15:03

有很多关于如何在Android中使用Maven并使用它的答案。

但是,由于Gradle已经可用,它管理Android项目的构建过程并支持创建Android应用程序的复杂场景,例如Multi-distribution和Multi-apk,

Maven 在 Android Studio 中的角色究竟是什么?

它与Gradle有何不同?


答案 1

简短的回答是:这些工具做同样的事情,但方式不同。不同之处在于如何使用它们来生成项目。Apache Maven采用“遵循我们的惯例”的方式,Gradle为您提供了灵活性。一些开发人员不想要新工具,或者没有时间学习如何正确使用它。

现在长答案...

为了正确理解为什么一些开发人员会附加到Apache Maven,我们必须回顾过去的几年。

Apache Maven是一个构建自动化工具,就像.Gradle

Maven于2004年获释。 第一个版本于2007年问世,但它并没有像早期那样受欢迎。一些开发人员不喜欢学习任何新东西,大多数公司也不想冒险为这个街区的新孩子交换一个已经运行和掌握的工具()。GradleMavenMaven

Gradle在Android开发提高时变得流行起来。Android的项目与Java EE/Web项目具有不同的项目结构。试图在Android的项目上使用Maven只是感觉不自然,该工具没有准备好提供灵活性。

到目前为止,Apache Maven可以用于简单的Java EE项目,如果您已经知道强制约定,而不会感到痛苦。因此,不知道Gradle/没有与Android应用程序取得联系的开发人员没有动力转向其他工具。

在我看来,它比你能想象到的每一种方式都要好。它为您提供了灵活性,并尽量不妨碍您,这是您在.如果你不遵循生命周期,你的构建就会失败,仅此而已。GradleApache MavenApache MavenApache Maven

例如,如果使用 ,则代码可以分布在任何布局中的多个目录中。如果您处于打开状态并且不遵循“约定”,您将花费一些时间来更改pom(构建文件)以能够理解和处理您的文件夹结构。GradleMavenMaven

例如:Java源代码必须在文件夹中。如果你有一个旧项目,结构是,对不起,你不能保证所有的Maven插件都会按预期运行。src/main/javasrc/java

Gradle帮了我们一个忙,并在一个非常有组织的图表中放置了更多功能进行比较。一起来看看吧。https://gradle.org/maven_vs_gradle/


答案 2

Maven 只是一个管理工具,用于管理和简化您构建项目的方式。在许多其他事情(运行测试,管理冲突,文档,模块化)中,它最有用的目的是自动获取项目所需的依赖项以及这些依赖项的依赖项(传递依赖项)(如果有的话)。依赖项通常只是包含可重用代码的文件。JAR

这是什么意思呢?假设您要使用一个库,例如在应用程序中生成文件。非Maven方式:Google搜索库,检查它是否需要其他库,如果是,请下载它们,将它们放在项目的类路径中,然后构建。将项目移动到另一台电脑时,请复制所有 JAR,否则它将不起作用。Maven 方式:在名为 :OpenCSVCSVpom.xml

 <dependency>
        <groupId>net.sf.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>2.3</version>
    </dependency>

做。Maven将在您构建时为您完成其余的工作(如果尚不存在,请下载到本地缓存,获取依赖项,javadoc等)。即使您要将项目复制到另一台没有JAR的PC上,删除等,如果Maven存在,它也会在您构建时自动重新下载它们。JAR's

欲了解更多信息:链接


推荐