2012-11-25 60 views
20

我很难过。我们最近将Android项目转换为Maven项目。我的合作伙伴使用IntelliJ,并使用Eclipse。他表示,这种设置可以很好地完成。com.jayway.maven.plugins.android.generation2:插件执行没有被生命周期配置覆盖?

我对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> 

我缺少什么?

+0

为了对我的文章进行跟踪,我从http://code.google.com/p/maven-android-plugin/wiki/Samples下载了示例,并且可以使用以下示例构建flaslight示例: 'mvn install',所以我认为它必须是我的Eclipse Maven插件特有的东西。没有? – ColonelPackage

+0

当我尝试从问题项目的命令行安装mvn安装时,出现大量错误:[错误] /home/mhoyt/workspace/client-android/target/unpack/apklibs/com.actionbarsherlock_actionbarsherlock_apklib_4 .2.0/src/com/ac tionbarsherlock/app/SherlockFragmentActivity.java:[3,27]包android.content.res不存在不知道这是否与pom有关。xml文件错误,但它似乎并没有像一个“ActionBarSherlock”依赖项也被下载。 – ColonelPackage

+0

你安装了哪个版本的m2e-android插件?这是旧版本的问题?此外,m2e-android还不支持ABS的apklib。 –

回答

42

发生这种情况是因为默认情况下,Eclipse的Maven插件(m2e)知道常规插件执行(编译,测试,流程资源等)的操作,但它不知道“该怎么做“用这些Android插件执行。

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

在这种特殊情况下(Android插件),您很幸运,并且有连接器可用于解决问题。

选项1:(简单)

转到Eclipse的市场和寻找 “Android的配置为M2E” 并安装它。

如果由于某种原因,你不能使用/访问市场(例如:如果您使用Spring工具套件-STS-)你仍然可以安装连接器:

选项2:

帮助 - >安装新软件... - >使用和工作粘贴以下(确切,因为它是没有任何ommiting)

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

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

希望这会有所帮助。

+3

非常适合我,谢谢! – bentzy

+0

太棒了!这就是我一直在寻找的问题 - 解决同一问题的其他答案为不存在的问题提供了复杂的解决方法 –

+0

谢谢!非常非常有帮助! –

相关问题