所以我们有一些用 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/