Maven插件执行未被覆盖 - 再次

时间:2013-11-15 08:27:02

标签: java eclipse maven m2eclipse

我对这个问题感到很沮丧。我的pom.xml里面有这个插件

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>axistools-maven-plugin</artifactId>
  <version>1.3</version>
  <executions>
    <execution>
     <goals>
      <goal>wsdl2java</goal>
     </goals>
    </execution>
  </executions>
  ...

我总是得到这个eclipse消息插件配置不被maven生命周期覆盖

这个错误变得很烦人。我发现如果我将这个移动到pluginConfiguration中,错误就会消失,但这是因为它不再被调用,因为它用于继承maven结构。

如果删除执行元素,eclipse会再次开心,但不再调用它。

所以我尝试添加这个巨大的插件配置(生命周期映射),我不知道它是什么,但它根本没有帮助:

<plugin>
   <groupId>org.eclipse.m2e</groupId>
   <artifactId>lifecycle-mapping</artifactId>
   <version>1.0.0</version>
   <configuration>
      <lifecycleMappingMetadata>
          <pluginExecutions>
              <pluginExecution>
                   <pluginExecutionFilter>
                       <groupId>org.codehaus.mojo</groupId>
                       <artifactId>aspectj-maven-plugin</artifactId>
                       <versionRange>[1.0,)</versionRange>
                       <goals>
                          <goal>test-compile</goal>
                          <goal>compile</goal>
                       </goals>
                   </pluginExecutionFilter>
                   <action>
                       <execute />
                   </action>
               </pluginExecution>
           </pluginExecutions>
       </lifecycleMappingMetadata>
   </configuration>
</plugin>       

我能够在eclipse中构建这个项目而没有错误,但它始终将执行标记显示为错误,并且在导入现有maven项目期间我也遇到了错误。

我删除了eclipse中的错误:-)这很好,但下次错误会再次出现。如果我谷歌那个问题,我会发现很多关于这个的话题,为什么还没有修复呢?

我也读过这篇文章 http://wiki.eclipse.org/M2E_plugin_execution_not_covered
但是,如果这是解决方案,我认为maven和eclipse不适合在一起。

我也没有得到,为什么我要告诉maven什么时候执行这个插件?我不需要在每个插件上告诉maven什么时候执行。为什么在这一个?我可以用不同的方式配置吗?

感谢您的帮助和许多问候, Hauke

2 个答案:

答案 0 :(得分:2)

包括“阶段”:

<execution>
<phase>package</phase>
 <goals>
  <goal>wsdl2java</goal>
 </goals>
</execution>

答案 1 :(得分:0)

如果您有错误not covered by life cycle...,则必须使用与您在构建中真正喜欢的插件名称相同的插件名称:

  <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.codehaus.mojo</groupId>
                    <artifactId>axistools-maven-plugin</artifactId>
                    <versionRange>[1.0,)</versionRange>
                    <goals>
                      <goal>wsdl2java</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>axistools-maven-plugin</artifactId>
        <version>1.3</version>
        <executions>
          <execution>
            <goals>
              <goal>wsdl2java</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

除此之外,我建议使用axistools-maven-plugin的最新版本 您必须配置此插件的原因很简单。因为默认情况下它不在生命周期中。你必须将它绑定到生命周期。在这种情况下,插件有一个default binding,如上所述,它将在pom中激活。否则你已明确表示:

<plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
      <execution>
        <phase>generate-sources</phase>
        <goals>
          <goal>wsdl2java</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>

如果您愿意或需要根据需要配置axistools-plugin,可以。