我可以通过 pom.xml 配置 m2eclipse 吗?

Posted

技术标签:

【中文标题】我可以通过 pom.xml 配置 m2eclipse 吗?【英文标题】:Can I Configure m2eclipse through pom.xml? 【发布时间】:2011-05-06 13:22:59 【问题描述】:

使用 maven-eclipse-plugin,使用 mvn eclipse:eclipse,您可以指定将自动添加到 eclipse 项目中的 eclipse project natures 和 builders。

m2eclipse 的早期版本使用 maven-eclipse-plugin 的配置块,还允许您使用相同的机制激活自然和构建器。这似乎不再是这种情况,因为 a) 我在 m2eclipse 源代码中找不到对 maven-eclipse-plugin 的任何引用,并且 b) 它只是不起作用:-)

所以这是我的问题:有什么方法可以从 pom.xml 配置 m2eclipse 生成的 eclipse 项目?具体来说:项目建设者和性质,但我也对其他选项感兴趣。

【问题讨论】:

【参考方案1】:

以下thread 总结了几乎所有内容。首先,它解释了 m2eclipse 不再支持 Maven Eclipse 插件中的任何内容,因为:

    Sonatype 不维护它。 这给他们带来了太多麻烦。

其次,它指出 m2eclipse 处理其他项目性质和构建器的方法是编写项目配置器

(...) 我们鼓励编写配置器以根据 POM 中可用的内容添加所需的性质和构建器。

有关指南,请参阅 this link,有关 checkstyle、findbugs、pmd 的一些现有配置器,请参阅 this project。

【讨论】:

这就是我害怕的。 Eclipse 插件版本。这意味着我必须单独配置每个 Eclipse 安装(或添加公司范围的更新站点)。这两个对我来说都是无操作的,所以我想我必须使用 GMaven 一起破解一些东西:-) @seanizer:我的理解是“配置器”确实使用来自 POM 的信息(例如,checkstyle 配置器将使用来自 pom 的 checkstyle 配置)。但是你确实需要安装一些东西。确实,现在我再次考虑这个问题,这很糟糕。 最后一句话当然是对的。我想要一个基于 pom 的解决方案,它可以打开我指定的所有构建器和性质(如果这些构建器和性质不存在,eclipse 会默默地忽略它)。基本上,我想要 m2eclipse 中 maven-eclipse-plugin 的行为(以前的方式)。谢谢你的回答,顺便说一句 @seanizer:是的,是的,你说得完全正确,我没有考虑足够的全局性 => 必须安装插件是一种痛苦。 @Pascal 实际上,如果我可以控制插件实际上存在于 Eclipse 中(以执行公司政策),那就更好了。但我想没有 maven-only 解决方案(至少不是没有巨大的 hack)。【参考方案2】:

我现在已经将它实现为一个我称之为 maven-eclipseconf-plugin 的 maven 插件。 不幸的是,这是客户的专有工作,所以我不能分享。但让我描述一下我的工作:

绑定到生命周期验证,我检查是否存在 eclipse .project 文件。如果它在那里,我会检查它是否存在我想要自动添加的构建器和性质(您可以通过使用 maven 属性或具有可配置名称的停止文件来停用此行为)。您还可以定义将要写入的配置文件(如 .pmd,与this other question of mine 相关)。配置文件的内容可以内联指定,它可以来自外部文件,也可以来自 URL。我还尝试在配置文件中引入变量替换,其中一个特殊的占位符将替换为 multi-moduke-project 的根文件夹,但 I had to give up on that approach。

无论如何,该插件为我提供了我曾经使用过的 maven-eclipse-plugin 的几乎所有功能(当然还有更多),我对此很满意。也许当这份合同完成后,我会再次在开源中构建类似的东西。

【讨论】:

【参考方案3】:

项目配置器是建议的方法。但最新版本的 m2e-extensions 是 2010 年初针对 m2eclipse 0.10.x 开发的。有一个名为 m2e-code-quality 的后续项目,该项目更新且活跃,针对 m2eclipse 0.12.x 开发。

但目前 m2e-extensions 和 m2e-code-quality 都不支持 FindBugs。还有一些其他的limitations with header files, exclusions and modified JARs。

我已成功使用universal approach with AntRun, Ant and XMLTask 自动为 pom.xml 中的 Eclipse 插件添加项目性质、构建器和配置文件。

【讨论】:

感谢您的反馈 (+1)

以上是关于我可以通过 pom.xml 配置 m2eclipse 吗?的主要内容,如果未能解决你的问题,请参考以下文章

maven项目 pom.xml文件解析

pom.xml多配置环境加载不同依赖

maven之pom.xml文件配置

maven 03-pom.xml核心配置

java web pom.xml

jenkins参数化配置,pom.xml配置