【问题标题】:Is there an alternative syntax (or scripting language) to simplify Maven pom files?是否有替代语法(或脚本语言)来简化 Maven pom 文件?
【发布时间】:2012-07-09 08:47:35
【问题描述】:

我们的存储库有几个项目,其中包含非常大的 pom.xml 文件,每个项目中都有许多依赖项和插件配置。

是否有任何方法可以在 Maven 网站上的标准 xml 之外指定我们的 pom.xml?

我所知道的最接近的解决方案是滥用继承并将依赖项和插件配置分离到父项目中,但这只能让我们走这么远。

当 Maven 3 的 pom 文件拆分为 released 时,它会减轻一些痛苦,但我首选的解决方案是脚本语言,它可以执行以下操作:

  • 将依赖项指定为单行而不是 5/6,
  • 允许在项目之间简单地重复使用插件配置,并且
  • 新开发人员可以轻松使用

【问题讨论】:

  • 不是一个真正的答案,但您是否考虑过使用 Gradle 代替?
  • 这不是滥用,而是 pom 继承的本意。
  • 快速阅读 Gradle 看起来非常好,我会考虑在我设置的下一个项目中使用它,但是这个当前项目过于依赖特定的 Maven 插件,无法在没有太多的情况下进行转换痛苦。
  • 遗憾的是,polyglot maven 似乎已经消失了。它允许您使用其他语言(即 groovy、jython)来指定您的 .pom 文件,然后将其转换为 xml。

标签: java maven maven-2 maven-3


【解决方案1】:

pom 继承不是唯一的方法。 您是否已经尝试使用像“材料清单”(BOM)这样的 POM,并且他们使用范围导入来导入它?

您可以在此pageImporting Dependencies 部分找到更多信息。它将允许在项目之间简单地重用插件配置。

【讨论】:

  • 从我能够找到的示例中,看起来这只允许分离dependencyManagement。在最终的 pom 文件中,我仍然需要列出所有依赖项工件(如果不是版本号)。你用这个方法成功拉出插件配置了吗?
【解决方案2】:

我发现简化 pom 文件的最简单方法之一是将编译阶段与部署阶段分开,而不是例如将编译阶段与部署阶段分开。使用大量配置文件。

换句话说,您有一个以最简单的方式编译每个模块的项目。使用默认名称生成 jar 或 war 文件

然后你有一个项目用于每个单独的“部署” - 即部署到测试服务器 - 具有所有各种配置 sn-ps。然后“mvn clean package”重新部署。

【讨论】:

  • 我们项目的问题是几乎所有的pom都专用于编译阶段。我们的一个项目中有 92 个依赖项和 10 个插件配置。大多数插件都是生成 JPA 元模型或编译 GWT 源代码之类的任务。例如,为了分离关注点,我想将 Hibernate/JPA 依赖项和 JPA 元模型生成拉到一个单独的小单元中。
猜你喜欢
  • 1970-01-01
  • 2011-01-17
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
相关资源
最近更新 更多