gmaven-плагин работает на Groovy 1.7.5, но не на 2.1.0

У меня есть рабочая установка maven 2, которая компилирует тесты jUnit, написанные на groovy. Оба java и groovy тесты расположены в / src / test / java

Смотрите снимок pom.xml

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.3</version>
    <executions>
        <execution>
        <id>testCompile</id>
        <goals>
            <goal>testCompile</goal>
        </goals>
        <configuration>
            <sources>
                <fileset>
                    <directory>${pom.basedir}/src/test/java</directory>
                    <includes>
                        <include>**/*.groovy</include>
                    </includes>
                </fileset>
            </sources>
        </configuration>
        </execution>
    </executions>
</plugin>

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>1.7.5</version>
    <scope>test</scope>
</dependency>

При обновлении до плагина версии 1.5 и groovy 2.1.0 файлы */.groovy игнорируются. Кто-нибудь встречался с этой проблемой?

4 ответа

Решение

Хорошо, эта конфигурация работает для Maven 2.

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <version>1.4</version>
        <configuration>
            <providerSelection>2.0</providerSelection>
            <sourceEncoding>UTF-8</sourceEncoding>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>testCompile</goal>
                </goals>
                <configuration>
                    <sources>
                        <fileset>
                            <directory>${pom.basedir}/src/test/java</directory>
                            <includes>
                                <include>**/*.groovy</include>
                            </includes>
                        </fileset>
                    </sources>
                </configuration>
            </execution>
        </executions>
</plugin>

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>2.0.0</version>
    <scope>test</scope>
</dependency>

Я нашел эту страницу https://confluence.atlassian.com/display/CLOVER/Compiling+Groovy+with+GMaven+plugin

Обратите внимание, что вы должны поместить свои классы и тесты Groovy в src/main/groovy а также src/test/groovy соответственно.

Следующая конфигурация, основанная на этой странице, кажется, работает:

        <!-- Groovy and Maven https://confluence.atlassian.com/display/CLOVER/Compiling+Groovy+with+GMaven+plugin -->
        <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>gmaven-plugin</artifactId>
            <version>${gmaven.version}</version>
            <configuration>
                <providerSelection>2.0</providerSelection>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.gmaven.runtime</groupId>
                    <artifactId>gmaven-runtime-2.0</artifactId>
                    <version>${gmaven.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-all</artifactId>
                    <version>${groovy.version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <goals>
                        <goal>generateStubs</goal>
                        <goal>compile</goal>
                        <goal>generateTestStubs</goal>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

И в зависимости конечно

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${groovy.version}</version>
    </dependency>

И в свойствах

<properties>
    <gmaven.version>1.5</gmaven.version>
    <groovy.version>2.1.8</groovy.version>
</properties>

Я испытываю ту же проблему, но снижение до gmaven 1.4 решает проблему (используя groovy-all 2.3.2)

Во-первых, каждый провайдер GMaven компилирует с определенной версией Groovy, поэтому могут возникнуть проблемы, если Groovy что-то сломает с помощью точечного выпуска. Во-вторых, GMaven больше не поддерживается (поэтому вы не видите провайдеров для более новых версий Groovy). Я рекомендую перейти на GMavenPlus или плагин компилятора Groovy-Eclipse для Maven.

Другие вопросы по тегам