2011-09-07 54 views
6

自从我为maven安装了新的m2e插件后,我的Groovy项目不再构建。我使用的是groovy-compiler-plugin,如here所述。我得到了maven-compiler-plugin的旧“插件执行未涉及......”错误。我试着执行并忽略错误中描述的目标“testCompile”和“compile”。Eclipse Helios + maven m2e + Groovy == FAIL

由于一些神秘的编译器问题,我无法使用GMaven。由于我公司的构建过程,我也被锁定到Maven 2.2.1。旧的m2eclipse插件消失了,m2e的文档非常残酷。

我在我的智慧结束与此。我没有其他地方看到这个问题。我不能是唯一的一个。

如果我很快就找不到解决方案,我要么杀死一些被黑客入侵的Gradle实现的Maven(尽管我无法使用它),要么我转向NetBeans,这是不是一个胜利的主张。

根据要求,pom片段如下。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.5</version> 
     <executions> 
     <execution> 
      <id>add-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
      <goal>add-source</goal> 
      </goals> 
      <configuration> 
      <sources> 
       <source>src/main/groovy</source> 
      </sources> 
      </configuration> 
     </execution> 
     <execution> 
      <id>add-test-source</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
      <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
      <sources> 
       <source>src/test/groovy</source> 
      </sources> 
      </configuration> 
     </execution>  
     </executions> 
    </plugin> 
    <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.1</version> 
     <configuration> 
     <compilerId>groovy-eclipse-compiler</compilerId> 
     <verbose>true</verbose> 
     <source>1.6</source> 
     <target>1.6</target> 
     </configuration> 
     <dependencies> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-batch</artifactId> 
      <version>1.8.0-03</version> 
     </dependency>   
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-compiler</artifactId> 
      <version>2.5.1</version> 
      <exclusions> 
      <exclusion> 
       <groupId>org.codehaus.groovy</groupId> 
       <artifactId>groovy-eclipse-batch</artifactId> 
      </exclusion> 
      </exclusions> 
     </dependency> 
     </dependencies> 
    </plugin> 
    </plugins> 

    <pluginManagement> 
    <plugins> 
     <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> 
     <plugin> 
     <groupId>org.eclipse.m2e</groupId> 
     <artifactId>lifecycle-mapping</artifactId> 
     <version>1.0.0</version> 
     <configuration> 
      <lifecycleMappingMetadata> 
      <pluginExecutions> 
       <pluginExecution> 
       <pluginExecutionFilter> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
       <versionRange>[2.3.1,)</versionRange> 
       <goals> 
        <goal>testCompile</goal> 
        <goal>compile</goal> 
        </goals> 
       </pluginExecutionFilter> 
       <action> 
        <execute /> 
       </action> 
       </pluginExecution> 
       <pluginExecution> 
       <pluginExecutionFilter> 
        <groupId>org.codehaus.groovy</groupId> 
        <artifactId>groovy-eclipse-compiler</artifactId> 
        <versionRange>[2.5.1,)</versionRange> 
        <goals> 
        <goal>testCompile</goal> 
        <goal>compile</goal> 
        </goals> 
       </pluginExecutionFilter> 
       <action> 
        <execute /> 
       </action> 
       </pluginExecution> 
      </pluginExecutions> 
      </lifecycleMappingMetadata> 
     </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 
+1

你可以发布你的pom,或者至少是带有m2eclipse生命周期映射的部分吗? –

+1

m2eclipse的存档版本位于http://m2eclipse.sonatype.org/archived-releases.html – Raghuram

+0

发布了POM片段。格式化可能会造成轻微拼写错误,但大部分内容是正确的。与此同时,我将尝试存档插件。谢谢。 –

回答

8

首先,您必须安装正确的配置器。我假设你正在使用m2e版本1.0。如果是这种情况,那么您必须为m2e安装较新版本的Groovy-Eclipse配置程序。在本次更新网站:(。不要使用Groovy的m2eclipse的,新的更新站点它已经过时,很快就会消失)

http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.6/

我没有做过了广泛的测试Eclipse 3.6配置器,但它应该工作。我建议您升级到Eclipse Indigo,因为Indigo通常会更好地工作。

其次,你需要修复你的pom.xml。删除对org.eclipse.m2e插件的引用。

+0

最初的结果似乎是积极的。我要重新安装3.7,然后重试这些步骤。如果我能直接完成这项工作,我会标记这个解决方案。感谢迄今为止的帮助。希望你可以在某处发布这个博客! –

+0

感谢安德鲁这个固定的一切,虽然有一些笔记:如果使用Indigo,你应该使用e3.7链接:http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.7/和*不要*安装“maven integration”选项(即v1.0.0)。最后也是最重要的,你仍然需要使用“build-helper-maven-plugin”并为它安装m2e连接器。 –

+0

这是正确的。我可以更新维基页面以使事情更加明确。 http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+compiler+plugin+for+Maven –

1

看看下面link我张贴在常规用户组。请注意,我使用弹簧STS,这只是一个更好的日食。我也粘贴我的测试套件供您参考,请注意源包括元素仔细。我也在努力解决这个问题,但现在肯定有效。另外,请确保eclipse中的maven指向你安装在你机器上的maven,否则它也会导致问题。

[更新]还要安装或者根据您的Eclipse版本以下插件提供的Groovy - Maven的整合 http://dist.codehaus.org/groovy/distributions/greclipse/groovy-m2eclipse-new/http://dist.codehaus.org/groovy/distributions/greclipse/groovy-m2eclipse/

<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.example.org</groupId> 
<artifactId>test-suite</artifactId> 
<packaging>jar</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>test-suite</name> 
<url>http://maven.apache.org</url> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<repositories> 
    <repository> 
     <id>jetlang.googlecode.com</id> 
     <name>Jetlang Repository for Maven</name> 
     <url>http://jetlang.googlecode.com/svn/repo/</url> 
    </repository> 
</repositories> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.1.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.ws</groupId> 
     <artifactId>spring-ws-core</artifactId> 
     <version>2.0.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.ws</groupId> 
     <artifactId>spring-ws-support</artifactId> 
     <version>2.0.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>3.0.5.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>3.0.5.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>3.0.5.RELEASE</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jetlang</groupId> 
     <artifactId>jetlang</artifactId> 
     <version>0.2.5</version> 
    </dependency> 
    <!-- Database pool --> 
    <dependency> 
     <groupId>c3p0</groupId> 
     <artifactId>c3p0</artifactId> 
     <version>0.9.1.2</version> 
    </dependency> 
    <!-- ORACLE database driver --> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc5</artifactId> 
     <version>11.2.0.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>jdom</groupId> 
     <artifactId>jdom</artifactId> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>jaxen</groupId> 
     <artifactId>jaxen</artifactId> 
     <version>1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.7.1</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    <!-- Groovy jar --> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy</artifactId> 
     <version>1.8.0</version> 
     <type>jar</type> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.1</version> 
      <configuration> 
       <compilerId>groovy-eclipse-compiler</compilerId> 
       <compilerArgument>nowarn</compilerArgument> 
       <!--<verbose>true</verbose> --> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.codehaus.groovy</groupId> 
        <artifactId>groovy-eclipse-compiler</artifactId> 
        <version>2.5.1-1</version> 
       </dependency> 
       <dependency> 
        <groupId>org.codehaus.groovy</groupId> 
        <artifactId>groovy-eclipse-batch</artifactId> 
        <version>1.8.0-03</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.8</version> 
      <configuration> 
       <additionalProjectnatures> 
        <projectnature>org.eclipse.jdt.groovy.core.groovyNature</projectnature> 
       </additionalProjectnatures> 
       <sourceIncludes> 
        <sourceInclude>**/*.groovy</sourceInclude> 
       </sourceIncludes> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

+0

不要在http://dist.codehaus使用该版本。组织/常规/发行/ greclipse/Groovy的m2eclipse的新/。它已经过时了。相反,请使用常规快照更新站点上的那个。 –

+0

您使用的是哪个版本的m2e插件?你如何解决与新的m2e插件和连接器相关的插件错误? –

+0

安德鲁,你能提供具体的链接吗?有4个文档站点,并且它们中没有一个似乎是正确的,或者是最新的。 –