com.jayway.maven.plugins.android.generation2:生命周期配置未涵盖插件执行?

时间:2012-11-25 19:37:05

标签: android eclipse maven android-maven-plugin

我很难过。我们最近将我们的Android项目转换为Maven项目。我的合作伙伴正在使用IntelliJ而我正在使用Eclipse。他说这可以通过他的设置很好地构建。

我对Maven很新,并且已经按照教程阅读了我能找到的所有内容,试图解决这个问题。

我的pom.xml文件中出现以下错误:

Multiple annotations found at this line:
- Plugin execution not covered by lifecycle configuration: com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.3.2:proguard (execution: default-proguard, 
 phase: process-classes)
- Plugin execution not covered by lifecycle configuration: com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.3.2:generate-sources (execution: default-
 generate-sources, phase: generate-sources)

这是我的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.groupmd.clientandroid</groupId>
<artifactId>clientandroid</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>GroupMD</name>

<dependencies>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>support-v4</artifactId>
        <version>r7</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.2</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.actionbarsherlock</groupId>
        <artifactId>actionbarsherlock</artifactId>
        <version>4.2.0</version>
        <type>apklib</type>
    </dependency>
</dependencies>
<build>
    <finalName>${project.artifactId}</finalName>
    <sourceDirectory>src</sourceDirectory>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <version>3.3.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 or api level (api level 4 = platform 1.6)-->
                    <platform>14</platform>
                </sdk>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>

我错过了什么?

1 个答案:

答案 0 :(得分:42)

这是因为默认情况下,Eclipse(m2e)的Maven插件知道如何对常规插件执行(编译,测试,进程资源等),但它不知道“做什么”使用这些Android插件执行。

有时,例如在配置maven-war-plugin,maven-ear-plugin等时,您可以通过从Eclipse Marketplace下载所谓的“m2e-connectors”来增强m2e提供的基本功能。之后,m2e知道如何处理某些“非标准”插件执行并停止显示这些错误。

在这个特殊情况下(Android插件),你很幸运,并且有安装连接器来解决问题。

选项1 :(更简单)

  

转到Eclipse Marketplace并查找“适用于M2E的Android配置程序”并安装它。

如果出于某种原因,您无法使用/访问市场(例如,如果您使用的是Spring Tool Suite -STS-),您仍然可以安装连接器:

选项2:

  

帮助 - &gt;安装新软件... - &gt;使用并粘贴以下内容(完全按原样,不要忽略任何内容)

Maven Integration for Android Development Tools Dependency Sites - http://rgladwell.github.com/m2e-android/updates/

然后按ENTER键。它将弹出一个确认对话框,再次按ENTER键,您应该能够看到该更新站点上的可用软件。只需勾选所有这些(“NDK插件”是唯一可选的)就是这样,在完全重建之后,您的问题应该消失。

希望这有帮助。