当前位置: 首页 > 知识库问答 >
问题:

如何消除“maven enforcer插件(目标“enforce”)被m2e忽略”的eclipse警告?

严昊昊
2023-03-14

我正在使用maven和eclipse m2e配置一个多模块父子maven项目,我使用的是eclipse Juno SR1的最新内容,即m2e 1.2.0

父pom使用enforcer插件,因此父pom使用enforcer插件。xml的插件部分包含以下内容

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.1.1</version>
    <executions>

        <!-- Enforce that all versions of a transative dependency must converge. -->
        <execution>
            <id>enforce</id>
            <configuration>
                <rules>
                    <DependencyConvergence />
                </rules>
            </configuration>
            <goals>
                <goal>enforce</goal>
            </goals>
        </execution>

        <!-- Black list certain jars -->
        <execution>
            <id>enforce-banned-dependencies</id>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                    <bannedDependencies>
                        <excludes>
                            <exclude>
                                commons-logging:commons-logging
                            </exclude>
                        </excludes>
                    </bannedDependencies>
                </rules>
                <fail>true</fail>
            </configuration>
        </execution>

    </executions>
</plugin>

每个子项目都有一条错误消息,表示m2e忽略了maven enforcer插件(目标“enforce”)

  • 这条信息是什么意思?
  • 如何配置东西以删除此消息?
  • 我需要配置eclipse项目设置还是pom.xml设置?

共有3个答案

尉迟德惠
2023-03-14

对于那些在构建模型中配置IDE有问题的人,仅供参考。请密切关注目前针对开普勒版本的此增强请求:

Bug 350414:将忽略的m2e连接器存储在项目pom外部。xmlhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=350414

申屠森
2023-03-14

m2e版本1.4及更高版本:您可以在pom(父pom或项目pom)中集成所需的生命周期配置,也可以在eclipse中将信息集成到全局m2e配置中。还有一些快速修复操作可用于应用此更改。

最后一种选择是寻找m2e连接器,或者切换到具有集成m2e支持的不同maven插件的新版本(例如jaxb插件)。

在这里(对于enforcer插件),我认为pom中的定义是最简单的方法。

另见:https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

贲凌
2023-03-14

eclipse maven插件运行一个项目pom。xml文件,以了解maven项目是如何配置的,并转换maven pom。将xml配置转换为eclipse配置。pom。xml可以引用任意数量的maven插件,这些插件中的每一个都有可能泄漏内存,或者做一些对eclipse有害的事情。因此,默认情况下,m2e eclipse插件会忽略任何maven插件,除非这些maven插件有一个特殊的m2e插件连接器,告诉m2e如何将maven插件集成到eclipse中。总之,m2e是在为eclipse JVM进程防御一个有缺陷的maven插件,它说,对于每个maven插件,都需要一个m2e连接器来连接maven和eclipse。

因此,为了消除警告,我在父pom的插件管理部分添加了以下内容。xml

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
          <lifecycleMappingMetadata>
            <pluginExecutions>
              <pluginExecution>
                <pluginExecutionFilter>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-enforcer-plugin</artifactId>
                  <versionRange>[1.0.0,)</versionRange>
                  <goals>
                    <goal>enforce</goal>
                  </goals>
                </pluginExecutionFilter>
                <action>
                  <ignore />
                </action>
              </pluginExecution>
            </pluginExecutions>
          </lifecycleMappingMetadata>
        </configuration>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

似乎是组织。日食m2e:生命周期映射(lifecycle mapping)是一个maven插件,设计用于保存元数据,以便在处理maven pom时与eclipse m2e插件通信。xml和这些信息用于告诉eclipse如何处理pom中定义的maven插件。eclipse运行pom时的xml。xml作为eclipse UI的一部分。

 类似资料:
  • 我正在使用maven和eclipse m2e配置一个多模块的父/子maven项目,我使用的是eclipse Juno SR1的最新内容,即m2e 1.2.0 父pom使用enforcer插件,因此父pom.xml的插件部分包含以下内容 每个子项目都有一个错误消息,表示 这条消息的意思是什么? 如何配置内容以删除此消息? 需要配置eclipse项目设置还是pom.xml设置?

  • 问题内容: 我在使用Eclipse Neon M7来使JUnit插件测试正常工作时遇到了一些问题,我真的很希望来自使用测试的任何人的输入(必须有人来,对吗?)。 每当我开始在Eclipse Luna中运行的测试(但在Mars中却没有,我认为这是一个错误)并且继续使用Tycho进行工作时,都会得到以下异常: 显然,这不是Eclipse错误,但我做错了。没有迹象表明测试中会启动哪种插件,但是从版本范围

  • 问题内容: 我正在将Maven与“ Eclipse Kepler JavaEE”结合使用。我在’maven-compiler-plugin’中有这样的内容: 每次我更改“ pom.xml”中的内容时,eclipse都会强制我执行“ Maven->更新项目”,然后将项目设置更改为使用JRE而不是JDK,并且某些maven构建停止工作。 我发现解决此问题的唯一方法是设置如何设置eclipse / m2

  • 问题内容: 我已经使用了tycho-eclipse-plugin-archetype中的原型来创建带有工作集成测试项目的简单Eclipse插件。除了…不是。 当我以“ JUnit插件测试”启动任何测试时,会出现以下异常: (以及其他插件的一些类似消息。) 这很奇怪,因为我的目标平台包含3.4.300,而不是3.4.500,它需要版本[3.3.0,4.0.0)。测试用例的运行配置与此版本一致,并证明

  • 我在使用Maven和'Eclipse Kepler Javaee'。我在'maven-compiler-plugin'中有这样的内容: