生命周期配置未涵盖插件执行:org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain

Posted

技术标签:

【中文标题】生命周期配置未涵盖插件执行:org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain【英文标题】:Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain 【发布时间】:2017-05-14 07:59:57 【问题描述】:

我正在使用 m2e 构建一个 java 项目。我需要使用 JAVA VERSION 1.6 。所以我正在尝试配置工具链插件来实现它。通过参考以下链接。

https://maven.apache.org/guides/mini/guide-using-toolchains.html

但在 Eclipse 中它会抛出以下错误。

生命周期配置未涵盖插件执行: org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain (执行:默认,阶段:验证) pom.xml /Replenishment 行 98 Maven项目构建生命周期映射问题

我提到了link,但我没有得到适当的清晰度。下面是用于配置工具链插件的代码sn-p。

在 pom.XML 中

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-toolchains-plugin</artifactId>
        <version>1.1</version>
        <lifecycleMappingMetadata>
               <pluginExecutions>
                  <pluginExecution>
                      <pluginExecutionFilter>
                          <groupId>
                              org.apache.maven.plugins
                          </groupId>
                          <artifactId>
                              maven-toolchains-plugin
                          </artifactId>
                          <versionRange>
                              [1.1,)
                          </versionRange>
                          <goals>
                              <goal>toolchain</goal>
                          </goals>
                      </pluginExecutionFilter>
                      <action>
                          <ignore></ignore>
                      </action>
                  </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
        <executions>
          <execution>
            <goals>
              <goal>toolchain</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <toolchains>
            <jdk>
              <version>1.6</version>
              <vendor>sun</vendor>
            </jdk>
          </toolchains>
        </configuration>
    </plugin>

还有我的 toolchains.xml

<?xml version="1.0" encoding="UTF8"?>
<toolchains>
  <!-- JDK toolchains -->
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.6</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
      <jdkHome>D:\POC\jdk1.6.0_31</jdkHome>
    </configuration>
  </toolchain>

</toolchains>

【问题讨论】:

我在堆栈中尝试了以下link 本身。但没有运气。 【参考方案1】:

对于 Eclipse 用户,转到 Window >> Preferences >> Maven 。

从菜单中选择生命周期映射选项。默认映射文件位置可以在 eclipse 临时目录中的某个位置,而是将文件生命周期映射元数据.xml 文件复制到 eclipse 目录或 maven 目录中的某个位置,以便于参考。

在lifecycle-mapping-metadata.xml 文件中添加以下配置。

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
    <pluginExecutions>
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <versionRange>[0.5,)</versionRange>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-toolchains-plugin</artifactId>
                <goals>
                    <goal>toolchain</goal>
                </goals>
                <versionRange>[0.0,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>
    </pluginExecutions>
</lifecycleMappingMetadata>

只需执行 Maven >> 从项目视图更新项目。 这是解决问题的简单方法。

【讨论】:

【参考方案2】:

更改我的 pom.xml 文件后,错误得到解决,如下所示。我们需要添加maven生命周期插件,然后将元数据信息包含在.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
        </plugin>
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-toolchains-plugin</artifactId>
                <version>1.1</version>
                <executions>
                  <execution>
                    <goals>
                      <goal>toolchain</goal>
                    </goals>
                  </execution>
                </executions>
                <configuration>
                  <toolchains>
                    <jdk>
                      <version>1.6</version>
                      <vendor>sun</vendor>
                    </jdk>
                  </toolchains>
                </configuration>
            </plugin>
    </plugins>
    <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-toolchains-plugin
                          </artifactId>
                          <versionRange>
                              [1.1,)
                          </versionRange>
                          <goals>
                              <goal>toolchain</goal>
                          </goals>
                      </pluginExecutionFilter>
                      <action>
                          <ignore></ignore>
                      </action>
                  </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

【讨论】:

是的,或者添加工具链的 m2e 插件 - 这种方式更容易,尤其是在大规模开发中【参考方案3】:

不用单独添加生命周期插件,直接在&lt;plugins&gt;标签前加&lt;pluginmanagement&gt;标签即可解决,如下所示。

<build>
    <pluginManagement>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-toolchains-plugin</artifactId>
          <version>1.1</version>
          <lifecycleMappingMetadata>
          ......................
          ......................
   </pluginManagement>
</build>

【讨论】:

以上是关于生命周期配置未涵盖插件执行:org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain的主要内容,如果未能解决你的问题,请参考以下文章

这是啥 Maven 错误? “生命周期配置未涵盖插件执行...)”

插件错误:生命周期配置未涵盖执行

生命周期配置 AppEngine 未涵盖插件执行

NodeJS 的生命周期配置未涵盖插件执行

生命周期配置未涵盖插件执行

Jacoco Maven 插件 - 生命周期配置未涵盖插件执行