maven pom xml文件错误:构buildAndroid项目

我得到了在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> 

Solutions Collecting From Web of "maven pom xml文件错误:构buildAndroid项目"

为了消除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> . . . 

这是因为新的m2eclipse插件,它新引入的function。

如果在m2eclipse插件的lifecycle-mapping-metadata.xml文件中有相应的configuration信息,那么对于在pom.xml中指定的所有构build执行,将显示错误。

你可以在这里获得更多的信息

你可以忽略那个不影响你的项目执行的错误。

Eclipse M2E警告你,你的生命周期包含一个未知的插件。 M2E无法决定,它是无关紧要的,可以被忽略,或者它是你生命周期的一个组成部分。

这些信息既可以作为你的pom.xml中的条目,也可以作为eclipse的特殊生命周期文件提供,也可以通过安装特定的configuration插件来提供,这通常是最好的解决scheme。

在你的情况下,存在一个android-maven插件的configuration器插件,看看: http : //rgladwell.github.io/m2e-android/ ,这应该很好地解决你的问题。

为了解决这个问题,我们必须在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”>“maven>生命周期映射”>“打开工作空间生命周期映射元数据”eclipse菜单中的“lifecycle-mapping-metadata.xml”文件中的以下标记

 <?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提供的答案

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

Android for Maven Eclipse (m2e-android)插件没有AAR支持(因为Google尚未将AAR支持添加到ADT),所以此目标未映射,这就是为什么您会收到此错误消息。

只需按照以下说明操作即可排除未映射的生命周期目标:

https://wiki.eclipse.org/M2E_plugin_execution_not_covered

或者,只需右键单击Eclipse中的错误消息,然后selectQuick Fix – > Ignore for every pom with such errors