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.