簡體   English   中英

用於maven的Groovy Eclipse編譯器插件沒有編譯任何東西

[英]Groovy Eclipse compiler plugin for maven not compiling anything

我正在嘗試理解Maven中Java和Groovy項目的正確設置,使用groovy-eclipse-compiler編譯源文件。

根據插件站點 ,如果你有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. 像上面那樣創建原型。
  2. 編輯pom.xml到下面的文件
  3. mv從src / main / groovy到src / main / java的所有內容以及測試相同的內容。
  4. 刪除空的groovy dirs
  5. 將所有* .java文件重命名為* .groovy
  6. mvn clean編譯
  7. 由於Java與groovy語法的差異,我得到了一些預期的編譯錯誤,但是所有groovy文件都被識別。

這對你有用嗎? 如果沒有什么不同?

這是我正在使用的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:

  <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頁面上都有描述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM