eclipse - 让groovy、maven 和eclipse 和谐共处?

标签 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 文件中。

如何解决这个问题?

最佳答案

我抛弃了 gmaven,转而使用 groovy-compiler-plugin,它会为你编织 groovy 编译器。使用 gmaven,我遇到了太多奇怪的编译器错误,其中缺少 stub 等。您仍然需要构建器帮助程序,并且 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>

关于eclipse - 让groovy、maven 和eclipse 和谐共处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251016/

相关文章:

unit-testing - 如何对调用异步方法的同步方法进行单元测试?

java - 我可以运行所有不属于任何组的 TestNG 测试吗(在 Maven 中)?

java - m2eclipse 将 'target' 目录标记为 'Derived'

debugging - 在 Maven 网络项目中调试 Maven 插件的执行

java - wildfly 10.0、jax-ws 和有状态 session

java - 如何从 nattable 单元格中获取鼠标位置以进行 rcptt 测试?

java - 元素在 XPath Checker 中找到,但在 Selenium 中找不到

java - 开源工具,通过 Maven2 生成 Javadocs,带有像 ydoc 这样的自动 UML 图

java - Eclipse ADB 未启动

java - @Override 在 Eclipse 中的私有(private)内部类声明中不被接受为有效?