maven pom xml文件中的错误:构建Android项目[重复]

Posted

技术标签:

【中文标题】maven pom xml文件中的错误:构建Android项目[重复]【英文标题】:Error in maven pom xml file: Building Android project [duplicate] 【发布时间】:2014-01-27 18:24:44 【问题描述】:

我在 pom xml 文件中的插件标记中收到错误。错误出现在插件标签上,在 groupId 之前。

错误:-

Plugin execution not covered by lifecycle configuration:com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:consume-aar (execution: default-consume-aar, phase: compile)

任何人都知道如何解决这个问题。下面提到的是pom.xml文件内容

pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.simpligility.android</groupId>
  <artifactId>helloflashlight</artifactId>
  <version>1.0.0</version>
  <packaging>apk</packaging>

  <name>HelloFlashlight</name>

  <dependencies>
    <dependency>
      <groupId>com.google.android</groupId>
      <artifactId>android</artifactId>
      <version>4.1.1.4</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <finalName>$project.artifactId</finalName>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.jayway.maven.plugins.android.generation2</groupId>
          <artifactId>android-maven-plugin</artifactId>
          <version>3.8.2</version>
          <extensions>true</extensions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
        <artifactId>android-maven-plugin</artifactId>
        <configuration>
          <sdk>
                        <!-- platform as api level (api level 16 = platform 4.1)-->
            <platform>16</platform>
          </sdk>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

【问题讨论】:

此链接可能对您有所帮助:***.com/questions/6352208/… 检查这个链接也wiki.eclipse.org/M2E_plugin_execution_not_covered 你可以在这里找到解决方案***.com/questions/9142533/… 【参考方案1】:

为了消除 pom.xml 中的错误,可以在其中添加以下内容:

    <pluginManagement>
     <plugins>
      <plugin>
       <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
         <version>1.0.0</version>
       <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
           <pluginExecution>
            <pluginExecutionFilter>
              <groupId>com.jayway.maven.plugins.android.generation2</groupId>
             <artifactId>android-maven-plugin</artifactId>
             <versionRange>[1.0.0,)</versionRange>
              <goals>
               <goal>consume-aar</goal>
              </goals>
             </pluginExecutionFilter>
            <action>
             <ignore />
            </pluginExecution>
           </action>
           </pluginExecutions>
          </lifecycleMappingMetadata>
         </configuration>
       </plugin>
       . . . 

【讨论】:

这是正确的做法,正如文档所建议的那样:wiki.eclipse.org/…【参考方案2】:

那是因为新的 m2eclipse 插件,它新引入的一个特性。

对于在 pom.xml 中指定的所有构建执行,如果 m2eclipse 插件的lifecycle-mapping-metadata.xml 文件中有相应的配置信息,则显示该错误。

您可以获取更多信息here

您可以忽略该错误,这不会影响您的项目执行。

【讨论】:

嗨 gow​​tham,你能告诉我如何忽略这个错误吗? @AmritPalSingh 在某种意义上忽略,留下那个错误,不要做任何事情,它会在 pom.xml 中显示错误标记(红色标记),但不会影响您的项目执行。 :) 但是如果我忽略它给您的项目包含错误的错误,请在运行您的应用程序之前修复它们 @AmritPalSingh - 是的,但他们不会停止您的项目执行。如果您不希望出现错误,可以浏览问题下方 cmets 中提供的链接【参考方案3】:

Eclipse M2E 警告您您的生命周期包含未知插件。 M2E 无法决定它是否无关紧要并且可以忽略,或者它是您生命周期中不可或缺的一部分。

这些信息可以作为 pom.xml 中的条目提供,也可以在 eclipse 的特殊生命周期文件中提供,或者通过安装特定的配置插件来提供,这通常是最好的解决方案。

在你的情况下,有一个 android-maven-plugin 的配置器插件,看看:http://rgladwell.github.io/m2e-android/,它应该可以很好地解决你的问题。

【讨论】:

【参考方案4】:

要解决这个问题,我们必须在 pom.xml 中添加以下所有元素:

<plugin>
    <groupId>org.eclipse.m2e</groupId>
    <artifactId>lifecycle-mapping</artifactId>
    <version>1.0.0</version>
</plugin>

这是最终的 pom xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>testMyc</groupId>
    <artifactId>srgfrzfd</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>apk</packaging>
    <name>srgfrzfd</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <platform.version> 4.1.1.4
            </platform.version>
        <android.plugin.version>3.8.2</android.plugin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>$platform.version</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>$project.artifactId</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <version>$android.plugin.version</version>
                    <extensions>true</extensions>
                </plugin>
            </plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
            </plugin>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <configuration>
                    <sdk>
                        <platform>16</platform>
                    </sdk>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

以及“Windows”中的“lifecycle-mapping-metadata.xml”文件中的以下标记>最好是maven>生命周期映射>“打开工作区生命周期映射元数据”eclipse菜单

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
    <pluginExecutions>
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <versionRange>[1.0.0,)</versionRange>
                <goals>
                    <goal>consume-aar</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>
    </pluginExecutions>
</lifecycleMappingMetadata>

将文件保存在正在使用的工作区中。

myc1986 提供的答案

【讨论】:

抱歉,Stack Overflow 是一个英文网站。【参考方案5】:

从Maven Eclipse (m2e) 0.12 版开始,所有 Maven 生命周期目标都必须映射到已安装的 m2e 扩展。在这种情况下,android-maven-plugin 添加了一个新目标 consume-aar 以支持新的 Android 库归档格式。

Android for Maven Eclipse (m2e-android) 插件尚不支持 AAR(因为 Google 尚未向 ADT 添加 AAR 支持)因此此目标未映射,这就是您收到此错误消息的原因。

您可以按照此处的说明排除未映射的生命周期目标:

https://wiki.eclipse.org/M2E_plugin_execution_not_covered

或者,只需右键单击 Eclipse 中的错误消息并选择 Quick Fix -> Ignore for every pom with such errors

【讨论】:

以上是关于maven pom xml文件中的错误:构建Android项目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Maven 相关的 Java 构建错误:缺少 pom.xml

整理nexus maven仓库构建和pom.xml文件之间的关联

Maven中的pom.xml文件超详细解析

为什么我需要在jar文件中查找未包含在maven pom.xml文件中的类?

pom.xml 文件简述

Eclipse Maven:pom.xml 中的未知错误