9

这听起来像一个愚蠢的问题,但我真的很困惑。我从未使用过 maven,但我知道它用于构建项目。

所以,我有一个问题:当我们可以在 Eclipse 中构建项目(没有 Maven)时,为什么需要使用 Maven 构建项目。只需将 eclipse 项目导出为 JAR 并包含所需的库和所有内容。

假设,我从 github 下载任何项目。现在我可以在 Eclipse 中导入该项目并将其导出为 JAR 并使用它的功能。那么为什么所有人都建议使用 MAVEN 来构建项目并生成二进制文件并使用它。

4

3 回答 3

12

首先,不是每个人都使用 Eclipse(即使在同一个团队中),不同的 IDE 可能会产生稍微不同的工件(JAR 文件)。

Maven 的一个优点是它不仅可以构建项目:

  • 它倾向于约定优于配置,并建议项目的“标准”布局
  • 它允许使用特定版本收集项目中所需的所有依赖项(与“lib/log4j.jar”之类的东西相反,没有指定版本)
  • 它允许制作许多不同的工件:包含已编译代码或源代码的 JAR、javadoc、WAR 等。
  • 它可以在 IDE 之外运行,通常在持续集成服务器上

我建议即使是小型项目也使用 Maven :)

于 2013-01-18T09:24:36.747 回答
7

因为您很快就会希望使用自动化工具自动构建您的项目,并且没有 Eclipse 可以帮助您。

您很快就会需要的可能的东西:

  • 在每次提交到您的存储库时构建您的项目
  • 在持续集成工具 UI 中的某处单击即可构建您的项目
  • 您的用户可能不了解或不关心 Eclipse,但他们知道如何使用 UI 来发布构建
于 2013-01-18T09:10:44.383 回答
5

假设一个简单的实时场景

开发环境 -> 生产环境(现在离开测试)

在开发环境中,您将拥有所有对开发人员友好的工具来减少您的写作工作量并花更多时间在逻辑上。

一旦你完成了你的部分,你将把它签入版本控制。

这应该现在转移到生产中。您将从版本控制中检出最新版本并投入生产

现在,你也不能在这里吃日食!因为你不会开发任何东西。在这种情况下,将一直使用一个简单的 pom.xml 和名为 Maven 的工具

并非所有时候,开发人员都会准备二进制文件。因此,假设某个不是开发人员的人正在部署您的应用程序。与其要求他打开 eclipse 并说 export blah blah blah,不如说,运行这个命令/批处理文件。该批处理文件显然将包含 maven 命令(mvn compile、mvn package)等。

最后,Eclipse 是为了缩短开发人员的开发时间,因为,由于简单的拼写错误,你可能会一次又一次地运行 maven,这可以被 Eclipse 缩短。在生产中,有一次,运行一个批处理文件。您的应用已部署

于 2013-01-18T09:18:03.250 回答