我在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>
答案 0 :(得分:5)
要使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>
. . .
答案 1 :(得分:2)
这是因为新的m2eclipse插件,它是新引入的一个特性。
对于pom.xml中指定的所有构建执行,如果m2eclipse插件的lifecycle-mapping-metadata.xml
文件中有相应的配置信息,则显示该错误。
您可以获得更多信息here
您可以忽略不会影响项目执行的错误。
答案 2 :(得分:1)
Eclipse M2E警告您,您的生命周期包含一个未知的插件。 M2E无法决定,它是否无关紧要,可以忽略,或者它是您生命周期中不可或缺的一部分。
此信息既可以作为pom.xml中的条目提供,也可以作为eclipse的特殊生命周期文件提供,也可以通过安装特定的配置插件来提供,这通常是最佳解决方案。
在你的情况下,android-maven-plugin存在一个configurator插件,请看一下:http://rgladwell.github.io/m2e-android/,这应该可以很好地解决你的问题。
答案 3 :(得分:1)
要解决这个问题,我们必须在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>
以及&#34; lifecycle-mapping-metadata.xml&#34;中的以下标记;文件位于&#34; Windows&#34; &GT;并且最好是maven>生命周期映射&gt; &#34;打开工作区生命周期映射元数据&#34;日食菜单
<?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提供
答案 4 :(得分:1)
从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
- &gt; Ignore for every pom with such errors
。