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
您可以忽略该错误,这不会影响您的项目执行。
【讨论】:
嗨 gowtham,你能告诉我如何忽略这个错误吗? @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文件之间的关联