2013-03-05 60 views
17

我有一个Android应用程序,它使用pom.xml文件构建。 mvn clean install工作没有错误,但在Eclipse中,我得到以下错误:生命周期配置没有涉及的插件执行:com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.0:generate-sources

Plugin execution not covered by lifecycle configuration: com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.0:generate-sources (execution: default-generate-sources, phase: generate-sources) 
Plugin execution not covered by lifecycle configuration: com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.0:proguard (execution: default-proguard, phase: process-classes) 

我该如何解决这些问题?

这里的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.mycompany</groupId> 
    <artifactId>myapp-android</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>apk</packaging> 
    <name>myappAndroidClient</name> 

    <repositories> 
     <repository> 
      <id>achartengine</id> 
      <name>Public AChartEngine repository</name> 
      <url>https://repository-achartengine.forge.cloudbees.com/snapshot/</url> 
     </repository>  
    </repositories> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>4.1.1.4</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8.2</version> 
      <scope>compile</scope> 
     </dependency> 
     <!-- Make sure this (robolectric dependency) is below the android dependencies --> 
     <dependency> 
      <groupId>com.pivotallabs</groupId> 
      <artifactId>robolectric</artifactId> 
      <version>1.0-RC4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.achartengine</groupId> 
      <artifactId>achartengine</artifactId> 
      <version>1.1.0</version> 
     </dependency>    
    </dependencies> 
    <build> 
     <finalName>${project.artifactId}</finalName> 
     <sourceDirectory>src</sourceDirectory> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <encoding>UTF-8</encoding> 
        </configuration> 
       </plugin> 

       <plugin> 
        <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
        <artifactId>android-maven-plugin</artifactId> 
        <version>3.5.0</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>17</platform> 
          <path>C:\Program Files\adt-bundle-windows-x86\adt-bundle-windows-x86\sdk</path> 
         </sdk> 
        </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <reporting> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>javancss-maven-plugin</artifactId> 
       <version>2.0</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-pmd-plugin</artifactId> 
       <configuration> 
        <targetJdk>1.7</targetJdk> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-checkstyle-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <configLocation>altruix-checkstyle.xml</configLocation> 
        <includeTestSourceDirectory>true</includeTestSourceDirectory> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>2.5.2</version> 
       <configuration> 
        <formats> 
         <format>html</format> 
         <format>xml</format> 
        </formats> 
        <instrumentation> 
         <excludes> 
          <exclude>**/*Test.class</exclude> 
         </excludes> 
        </instrumentation> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-project-info-reports-plugin</artifactId> 
       <version>2.0.1</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>2.2</version> 
       <configuration> 
        <inputEncoding>UTF-8</inputEncoding> 
        <outputEncoding>UTF-8</outputEncoding> 
        <locales>en</locales> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>findbugs-maven-plugin</artifactId> 
       <version>2.5.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>jdepend-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </reporting> 
</project> 

更新1(2013年3月6日):这是安装的插件列表。

enter image description here

更新2(2013年3月8日):下面你可以找到更新的pom.xml。现在我在下面的XML代码中得到另一个错误 - Plugin execution not covered by lifecycle configuration: com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.0:proguard (execution: default-proguard, phase: process-classes)<!-- Error occurs here -->标记的地方。

<build> 
     <finalName>${project.artifactId}</finalName> 
     <sourceDirectory>src</sourceDirectory> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <encoding>UTF-8</encoding> 
        </configuration> 
       </plugin> 
       <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>[3.5.0,)</versionRange> 
             <goals> 
              <goal>generate-sources</goal> 
             </goals> 
            </pluginExecutionFilter> 
            <action> 
             <ignore /> 
            </action> 
           </pluginExecution> 
          </pluginExecutions> 
         </lifecycleMappingMetadata> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
        <artifactId>android-maven-plugin</artifactId> 
        <version>3.5.0</version> 
        <extensions>true</extensions> 

       </plugin> 

       <plugin> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.5</version> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
     <plugins> 
      <plugin> <!-- Error occurs here --> 
       <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>17</platform> 
         <path>C:\Program Files\adt-bundle-windows-x86\adt-bundle-windows-x86\sdk</path> 
        </sdk> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

更新3(2013年3月8日):当我改变pom.xml文件中这样

<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>[3.5.0,)</versionRange> 
         <goals> 
          <goal>generate-sources</goal> 
          <goal>proguard</goal> 
          <goal>emma</goal> 
          <goal>dex</goal> 
          <goal>internal-pre-integration-test</goal> 
          <goal>internal-integration-test</goal> 
         </goals> 
        </pluginExecutionFilter> 
        <action> 
         <ignore /> 
        </action> 
       </pluginExecution> 
      </pluginExecutions> 
     </lifecycleMappingMetadata> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
    <artifactId>android-maven-plugin</artifactId> 
    <version>3.5.0</version> 
    <extensions>true</extensions> 

</plugin> 

,并从Eclipse运行应用程序,我得到以下错误:

FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: co.altruix.ccp.android.impl.viewtype2fragmentmapper.DefaultViewTypeToFragmentMapper 
    at co.altruix.ccp.android.impl.activities.MainActivity.<init>(MainActivity.java:22) 
    at java.lang.Class.newInstanceImpl(Native Method) 
    at java.lang.Class.newInstance(Class.java:1319) 
    at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5039) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    at dalvik.system.NativeStart.main(Native Method) 

当我使用mvn clean install; mvn android:emulator-start; mvn android:deploy运行相同的应用程序时,一切正常。

更新4(二零一三年三月十一日00:24 MSK):这里是我的新Eclipse安装已安装的插件列表:

List of plugins

更新5(2013年3月12日23:22 MSK ):这里的类路径(achartengine似乎包括):

Classpath

您也可以下载我的Eclipse installation

+2

它看起来像你缺少一个[M2E连接器(HTTP: //objectledge.org/confluence/display/TOOLS/M2E+Connectors)将maven-android-plugin集成到Eclipse中。你有没有[安装连接器](http://rgladwell.github.com/m2e-android/)? – sbk 2013-03-05 23:41:15

+0

我不行。在我的IDE中没有菜单项“Help - > Eclipse Marketplace”。 – 2013-03-06 17:56:28

+0

@sbk请参阅** update 1 **,其中列出了所有已安装的Eclipse插件。 – 2013-03-06 18:56:13

回答

3

一种方法来解决它是通过添加以下部分,将的pom.xml(或父pom.xml的):

<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>[3.5.0,)</versionRange> 
        <goals>                
        <goal>generate-sources</goal>  
        <goal>proguard</goal> 
        <goal>emma</goal> 
        <goal>dex</goal> 
        <goal>apk</goal> 
        <goal>internal-pre-integration-test</goal> 
        <goal>internal-integration-test</goal>           
        </goals> 
       </pluginExecutionFilter> 
       <action> 
        <execute /> 
       </action> 
      </pluginExecution> 
     </pluginExecutions> 
     </lifecycleMappingMetadata> 
    </configuration> 
</plugin> 
+0

我尝试了你的建议。现在我得到另一个错误 - 详细信息请参阅上面的“更新2”。 – 2013-03-08 14:59:05

+0

只需将目标添加到goals标签即可: proguard。同样的问题,你可能会从插件的其他目标:apk,emma,dex,...只需添加它们与目标标记。 – asgoth 2013-03-08 15:06:15

+0

查看更新的答案。尝试以上目标 – asgoth 2013-03-08 15:13:32

相关问题