让groovy,maven和eclipse一起玩得很好吗?

时间:2010-07-14 22:21:05

标签: eclipse unit-testing maven-2 groovy

所以我们有一些用groovy编写的单元测试。我们有Groovy Eclipse插件,我们有gmaven,但问题是maven eclipse插件不会自动添加src / test / groovy目录作为源目录。所以,我参与了build-helper插件来添加源目录,但是问题变成了源目录 - 在eclipse中,过滤器将包含** / * .java并排除其他所有内容,这导致了groovy eclipse插件困惑。我已经设法通过使用构建助手来使用正确的.groovy文件过滤器添加测试资源来解决问题。显然,如果我们决定在项目中使用groovy类,那么这里的问题是不可用的 - .groovy类将包含在.jar文件中。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

我倾向于使用govven支持groovy-compiler-plugin,它为你编写groovy编译器。使用gmaven我遇到了太多奇怪的编译器错误,其中存根缺失等等。你仍然需要builder-helper,而Groovy Eclipse插件有助于将源链接到编译类,但这在eclipse中工作之间完美无缺。并在命令行。

  <properties>
    <groovy.version>1.8.0</groovy.version>
    <groovy.provider>1.7</groovy.provider>
  </properties>

  <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>
    </plugins>
    <pluginManagement>
      <plugins>
        <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>
  </build>

答案 1 :(得分:0)

我们已经为Groovy-Eclipse创建了m2eclipse集成。首先,您必须安装m2eclipse:

http://m2eclipse.sonatype.org/sites/m2e

然后您可以安装Groovy-Eclipse集成,您可以在此处获取:

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

或者这里是伽利略:

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

请注意,m2eclipse集成仍处于测试阶段,我们非常感谢用户提供的反馈,以了解它对它们的效果。

答案 2 :(得分:0)

我碰巧检查了maven eclipse插件页面,结果发现这类问题已经解决了: http://maven.apache.org/plugins/maven-eclipse-plugin/examples/specifying-source-path-inclusions-and-exclusions.html

我最后只是使用build-helper-plugin来指定其他源,并将.groovy文件添加到源包含的eclipse插件中。