Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让groovy、maven和eclipse一起玩得很好?_Eclipse_Unit Testing_Maven 2_Groovy - Fatal编程技术网

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

让groovy、maven和eclipse一起玩得很好?,eclipse,unit-testing,maven-2,groovy,Eclipse,Unit Testing,Maven 2,Groovy,所以我们有一些用groovy编写的单元测试。我们有Groovy Eclipse插件,我们有gmaven插件,但问题是maven Eclipse插件不会自动添加src/test/Groovy目录作为源目录。因此,我注册了buildhelper插件来添加一个源目录,但问题变成了源目录——在eclipse中,过滤器将包括**/*.java并排除所有其他内容,这导致groovy eclipse插件混淆。我通过使用build助手添加带有正确的.groovy文件过滤器的测试资源,成功地解决了这个问题。显然,

所以我们有一些用groovy编写的单元测试。我们有Groovy Eclipse插件,我们有gmaven插件,但问题是maven Eclipse插件不会自动添加src/test/Groovy目录作为源目录。因此,我注册了buildhelper插件来添加一个源目录,但问题变成了源目录——在eclipse中,过滤器将包括**/*.java并排除所有其他内容,这导致groovy eclipse插件混淆。我通过使用build助手添加带有正确的.groovy文件过滤器的测试资源,成功地解决了这个问题。显然,这里的问题是,如果我们决定在项目中使用groovy类,.groovy类将包含在.jar文件中,那么它是不可用的


如何解决这个问题?

我们已经为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集成仍然是测试版,我们感谢用户的反馈,看看它对他们有多好。

我碰巧查看了maven eclipse插件页面,结果发现这类问题已经解决了:


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

我放弃了gmaven,转而使用groovy编译器插件,它为您编写groovy编译器。在gmaven中,我遇到了太多奇怪的编译器错误,其中存根丢失,等等。您仍然需要builder助手,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.8.0
1.7
org.codehaus.mojo
构建助手maven插件
1.5
添加源
生成源
添加源
src/main/groovy
添加测试源
生成测试源
添加测试源
src/test/groovy
maven编译器插件
2.3.1
groovy eclipse编译器
真的
1.6
1.6
org.codehaus.groovy
groovy eclipse批处理
1.8.0-03
org.codehaus.groovy
groovy eclipse编译器
2.5.1
org.codehaus.groovy
groovy eclipse批处理

这是一个很好的建议,我也将尝试m2eclipse插件。我还想说明我团队中的其他开发人员不想在eclipse中使用m2eclipse或其他maven插件的可能性。根据我的经验,使用m2eclipse比使用meclipse更好地管理maven项目。这是因为对项目结构的所有更改都会立即反映在工作空间中。您不需要重新运行任何maven命令来更新内容。