【问题标题】:Newbie question about maven关于maven的新手问题
【发布时间】:2011-02-17 23:31:08
【问题描述】:

我需要打扰的唯一配置文件是pom.xml是真的吗?

在我看来,Java 人的生活xml 比其他任何东西都多,这是真的吗?

【问题讨论】:

  • 认为 XML 是邪恶的东西,不适合任何事情,应该不惜一切代价避免这种想法是短视的。

标签: java maven-2 maven


【解决方案1】:

我需要关心的唯一配置文件是 pom.xml 是真的吗?

是的,Maven 使用pom.xml 文件来描述项目的元数据并扩展 Maven 的行为,该文件也称为项目对象模型 (POM) 文件。

默认情况下,Maven 还会在 ~/.m2/settings.xml 中查找每个用户的配置文件,但此文件是可选的。

为什么maven不使用脚本来做这种工作,我看xml在这里没有任何优势,这就是我不喜欢ant的原因

如果不是 XML,Maven 在 2002 年应该使用什么?生成文件?在我看来,对于声明性项目对象模型来说,XML 过去和现在都是一个非常不错的选择。是的,XML 很冗长,但它非常适合这项工作,并且可以从验证、转换、代码完成等对我来说似乎很重要的好处中受益。

现在,如果您不喜欢 Maven,没有什么会迫使您使用 Maven,并且可以随意使用 GradleGantBuildr(如果他们的社区规模不是问题的话)。

以防万一,请注意 Maven 3 提供多语言支持(请参阅 this postthis one),但正如我所说,用 Groovy、YAML 等编写 pom 不仅具有优势(例如验证)。

【讨论】:

  • Maven 3 是未来版本...顺便说一句,GradleGant 是否支持脚本而不是 xml?
  • @user198729 未来比你想象的更近。 Maven 3.x 已经嵌入在 NetBeans 或 Eclipse 等 IDE 中,Beta 1 可用,我的所有项目都可以使用它构建。关于 Gradle、Gant、Builder,请查看链接。
【解决方案2】:

Maven 将 XML 用于 POM 文件,因为 XML 是描述事物的好选择……而 POM 文件是项目的描述。我认为 Maven 实现者可能发明了一种自定义语言,但是很多人会抱怨必须学习另一种语言的语法。

用某种脚本语言表达 Maven POM 文件是没有意义的,因为它们在任何可识别的意义上都不是“脚本”。

在我看来,Java 人比其他任何东西都更喜欢 xml,这是真的吗?

没有。 “Java 人”使用各种技术来配置事物:XML、JSON、属性文件、数据库、定制语言,你说的就是有人用过。

如果您的问题是您讨厌使用 XML,那么:

  • 克服它,
  • 获取一个对您隐藏 XML 语法的编辑器,
  • 使用(颤抖)Make
  • 使用(呜咽)用一些陈旧的脚本语言编写的构建脚本,或者
  • 离开并实施更好的解决方案。

但我会坚持使用 Maven,谢谢。

【讨论】:

  • 实际上构建不仅仅是配置,比如xml不适合这种工作。
  • @user1982729 - 1) 我没有说任何关于配置的事情。 2) Maven 通过...理解 POM 文件中的描述来构建项目。不需要明确的构建脚本。
  • @user1982729 - 顺便说一句,作为一个自称 Maven 的新手,你没有资格就 Maven 是否应该使用 XML 作为其项目描述语言发表声明。等到您了解 Maven 在做什么以及为什么要这样做,然后再开始向它投掷臭弹。
【解决方案3】:

您可能也想关注settings.xml 文件。但是,在大多数情况下,您是正确的,所有内容都在 pom.xml

【讨论】:

  • Sigh...为什么 maven 不用scripts 做这种工作,我看不出xml 在这里有什么优势,这就是我不喜欢@987654325 的原因@..
  • 验证对最终用户来说是一件大事。简单的数据绑定对于 Maven 程序员来说是另一回事。提醒:POM 是一种 OBJECT MODEL 而不是脚本语言,因此您无需担心在 XML 中编写“代码”。
  • 构建过程的程序化程度高于可配置性。假设我们应该使用脚本而不是 xml 来完成这种工作。
  • 此外,使用 XML 允许 IDE 构建器将 POM 文件包装在 GUI 中。
  • 你真的看过 pom.xml 文件吗?里面没有程序逻辑元素。
猜你喜欢
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-23
相关资源
最近更新 更多