2013-05-09 74 views
3

我在Windows 7上使用Eclipse Juno和Maven 3.0.5。該項目之前在Windows XP上,並且我已移至Windows 7 64位計算機。Eclipse Maven Error插件執行不包含在生命週期配置中:

我抄我的Eclipse春季3,休眠4和JSF 2.0項目,當我嘗試編譯我收到以下錯誤

Plugin execution not covered by lifecycle configuration: 
org.bsc.maven:maven-processor-plugin:2.0.6:process (execution: process, phase: 
generate-sources) 

我試圖通過添加在Eclipse中繼this線程提到.ini文件,但它沒有解決問題。

-vm 
c:\Program Files\Java\jdk1.7.0_21\jre\bin\server\jvm.dll 

嘗試建設maven安裝和清理,但問題仍然存在。

我該如何解決這個問題?任何幫助是非常可觀的。

感謝

Maven的片斷

<plugins> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId>    
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArgument>-proc:none</compilerArgument> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.bsc.maven</groupId> 
       <artifactId>maven-processor-plugin</artifactId> 
       <version>2.0.6</version> 
       <executions> 
        <execution> 
         <id>process</id> 
         <goals> 
          <goal>process</goal> 
         </goals> 
         <phase>generate-sources</phase> 
         <configuration> 
          <!-- source output directory --> 
          <outputDirectory>target/metamodel</outputDirectory> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
+1

您是否嘗試過更新版本的Maven處理器插件(例如2.2.1)? – willome 2013-05-13 16:13:27

+0

你可能也改變了你的eclipse安裝。看看[this](http://stackoverflow.com/a/7392705/367285)答案。我想這是問題,並從命令行執行mvn工作正常。 – FrVaBe 2013-05-24 20:53:07

回答

4

新版本M2E的抱怨,如果一個Maven插件沒有提供M2E生命週期的映射。較新的插件通過其JAR中的文件META-INF/m2e/lifecycle-mapping-metadata.xml提供這種映射。如果這個文件不存在,那麼Eclipse會抱怨。

通過爲您的POM添加舊版插件的生命週期映射,有可能讓這些投訴停滯不前。在給定的例子中,這個映射是在配置文件中完成的,配置文件在Eclipse中運行構建時會自動激活(設置了m2e.version屬性),並且在常規maven構建完成時它不是活動的。

<profiles> 
    <profile> 
    <id>m2e</id> 
    <activation> 
     <property> 
     <name>m2e.version</name> 
     </property> 
    </activation> 
    <build> 
     <pluginManagement> 
     <plugins> 
      <plugin> 
      <groupId>org.eclipse.m2e</groupId> 
      <artifactId>lifecycle-mapping</artifactId> 
      <version>1.0.0</version> 
      <configuration> 
       <lifecycleMappingMetadata> 
       <pluginExecutions> 
        <pluginExecution> 
        <pluginExecutionFilter> 
         <groupId>org.bsc.maven</groupId> 
         <artifactId>maven-processor-plugin</artifactId> 
         <versionRange>[2.0.6,)</versionRange> 
         <goals> 
         <goal>process</goal> 
         </goals> 
        </pluginExecutionFilter> 
        <action> 
         <ignore /> 
        </action> 
        </pluginExecution> 
       </pluginExecutions> 
       </lifecycleMappingMetadata> 
      </configuration> 
      </plugin>   
     </plugins> 
     </pluginManagement> 
    </build> 
    </profile> 

上面的示例禁用了Eclipse構建中的插件。也可以通過指定<execute />作爲動作來啓用它。

請注意,pluginExecutionFilter下的設置必須與您希望映射的插件和目標相匹配。可以指定多個插件執行元素來映射不同的插件。

相關問題