用于maven的Groovy Eclipse编译器插件没有编译任何东西

时间:2013-05-07 18:31:50

标签: eclipse maven groovy

我正在尝试理解Maven中Java和Groovy项目的正确设置,使用groovy-eclipse-compiler编译源文件。

根据plugin site,如果你有src/main/javasrc/test/java中的文件,编译器应该默认找到Java和Groovy。

像示例一样设置build会使target/classes为空。

<build>
...
<plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <compilerId>groovy-eclipse-compiler</compilerId>
      <!-- set verbose to be true if you want lots of uninteresting messages -->
      <!-- <verbose>true</verbose> -->
    </configuration>
    <dependencies>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-eclipse-compiler</artifactId>
        <version>2.7.0-01</version>
      </dependency>
    </dependencies>
  </plugin>
  ...
</plugins>
</build>

我发现让它发挥作用的唯一方法是使用build-helper-maven-plugin。这也是Archetype使用的选项:

mvn archetype:generate \
    -DarchetypeGroupId=org.codehaus.groovy \
    -DarchetypeArtifactId=groovy-eclipse-quickstart \
    -DarchetypeVersion=2.5.2-SNAPSHOT \
    -DgroupId=foo \
    -DartifactId=bar \
    -Dversion=1 \
    -DinteractiveMode=false \
    -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/

那么,它的页面已经过时了吗? src文件夹中是否有足够的Java文件?

1 个答案:

答案 0 :(得分:6)

我能够让它发挥作用。这是我做的:

  1. 像上面一样创建原型。
  2. 将pom.xml编辑到下面的文件
  3. mv从src / main / groovy到src / main / java的所有内容以及测试的相同内容。
  4. 删除空的groovy目录
  5. 将所有* .java文件重命名为* .groovy
  6. mvn clean compile
  7. 由于Java与groovy语法的差异,我得到了一些预期的编译错误,但所有groovy文件都被识别。
  8. 这对你有用吗?如果没有什么不同?

    这是我正在使用的pom文件:

    <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>foo</groupId>
      <artifactId>bar</artifactId>
      <version>1</version>
      <name>bar Groovy Eclipse Maven Java App</name>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
              <compilerId>groovy-eclipse-compiler</compilerId>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-eclipse-compiler</artifactId>
                <version>2.7.0-01</version>
                <exclusions>
                  <exclusion>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-batch</artifactId>
                  </exclusion>
                </exclusions>
              </dependency>
              <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-eclipse-batch</artifactId>
                <version>2.1.1-01</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    
      <dependencies>
        <dependency>
          <groupId>org.codehaus.groovy</groupId>
          <artifactId>groovy-all</artifactId>
          <version>2.1.1</version>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.2</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>
    

    修改

    由于我误解了实际问题,并且您确实希望将文件分开,因此有两个选项:

    1. 使用build-helper-plugin完成
    2. 使用groovy-eclipse-compiler mojo:
    3.   

        <plugin>
          <groupId>org.codehaus.groovy</groupId>
          <artifactId>groovy-eclipse-compiler</artifactId>
          <version>2.7.0-01</version>
          <extensions>true</extensions>
        </plugin>
      
      </build>
      

      groovy-eclipse-compiler页面对此进行了描述。