6

ソースファイルをgroovy-eclipse-compilerでコンパイルして、MavenでのJavaおよびGroovyプロジェクトの正しいセットアップを理解しようとしています。

プラグイン サイトによると、src/main/javaファイルがある場合src/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. これはアーキタイプでも使用されるオプションです。

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 ファイルがあれば十分ではありませんか?

4

1 に答える 1

6

私はこれを機能させることができます。これが私がしたことです:

  1. 上で行ったようにアーキタイプを作成します。
  2. pom.xml を以下のファイルに編集します
  3. src/main/groovy から src/main/java までのすべてを mv し、テストについても同じです。
  4. 空のgroovyディレクトリを削除します
  5. すべての *.java ファイルの名前を *.groovy に変更します
  6. mvn クリーン コンパイル
  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>

編集

私は実際の質問を誤解しており、ファイルを分けておきたいので、2 つのオプションがあります。

  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ページで説明されています。

于 2013-05-08T16:03:29.747 に答える