Мой проект такой:
Я использую JDK1.6
Project (maven project)
Module_SERVER_SIDE
Module_TEST (it actaully extneds other Parent JUNIT test module)
src/java (put all existing java test source code here)
src/groovy (newly added , i put my ABCSpockTestSpec here)
Могу ли я узнать, как решить проблему с именем пакета для исходного кода Java?
исходная корневая папка src, но теперь корневой папкой становится src / java
Должен ли скомпилированный groovy-файл .class / .groovy помещаться в target / package / file.groovy как target / package / file.class?
Как я могу запустить junit (класс java) и spock (класс groovy) в моем том же MODULE_TEST, теперь синтакс заключается в том, что файл .groovy НЕ помещается в целевую папку.
Как мне запустить сборку join groovy-java, я прочитал
http://docs.groovy -lang.org / latest / html / documentation / tools-groovyc.html # ThegroovycAntTask-JointCompilation , но не повезло.
Я пробовал groovy-eclipse-compiler, но с ошибками:
type groovy.lang.Closure cannot be resolved. It is indirectly referenced from required .class files
Class not found ABCSpockTestSpec
java.lang.ClassNotFoundException: com.package.ABCSpockTestSpec
вот мой pom.xml. Спасибо.
<build>
<sourceDirectory>${basedir}/src </sourceDirectory>
<testSourceDirectory>${basedir}/src</testSourceDirectory>
<resources>
<resource>
<directory>${basedir}/resources</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<!-- resource>
<directory>${basedir}/src</directory>
</resource-->
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Spec.groovy</include>
<include>**/*Spec.java</include>
<include>**/*.groovy</include>
</includes>
<!--
<excludes>
<excludes>**/somepackage/**</excludes>
</excludes>
-->
<argLine>${ArgLineValue}</argLine>
<testFailureIgnore>true</testFailureIgnore>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
</configuration>
</plugin>
</plugins>
/build>
reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
/reporting>
dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.13</version>
<scope>test</scope>
</dependency>
<dependency> <!-- enables mocking of classes (in addition to interfaces) -->
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.6.5</version>
<scope>test</scope>
</dependency>
<!-- Enables mocking of classes (in addition to interfaces) -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<!-- enables mocking of classes without default constructor (together with CGLIB) -->
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>2.5.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.1-groovy-2.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.gmaven.runtime</groupId>
<artifactId>gmaven-runtime-2.0</artifactId>
<version>1.5</version>
</dependency>
/dependencies>
profiles>
<profile>
<id>emma</id>
<properties>
<backgroundStyle>3</backgroundStyle>
</properties>
<build>
<resources>
<resource>
<directory>${basedir}/../ACON_PC_SHARED/resources</directory>
<includes>
<include>client.cst.xml</include>
<include>_aconShared.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>${skip.pc.module.tests}</skipTests>
</configuration>
</plugin>
<!-- start experiment by Glen 2018Mar05 Spock with Java -->
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<sources>
<source>
<directory>${basedir}/src/groovy</directory>
<includes>
<include>**/*.groovy</include>
</includes>
</source>
</sources>
<testSources>
<testSource>
<directory>${basedir}/src/groovy</directory>
<includes>
<include>**/*.groovy</include>
</includes>
</testSource>
</testSources>
</configuration>
</plugin>
<!-- start experiment by Glen 2018Mar05 Spock with Java -->
<plugin>
<groupId> org.codehaus.groovy.maven </groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0-rc-3</version>
<extensions>true</extensions>
<executions>
<execution>
<goals><goal>testCompile</goal></goals>
<configuration>
<sources>
<fileset>
<directory>
${pom.basedir}/src/java
</directory>
<include>**/*.groovy</include>
</fileset>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<!-- If run following plugin , then it cannot resolve the traditional JUnit, when I put them into
src/java and src/groovy separately -->
<!--<plugin>-->
<!--<groupId>org.codehaus.gmaven</groupId>-->
<!--<artifactId>groovy-maven-plugin</artifactId>-->
<!--</plugin>-->
<!-- If run following plugin , then it cannot resolve the traditional JUnit, when I put them intosrc/java and src/groovy separately -->
</plugins>
</build>
но я следовал
Запуск модульных испытаний спока с Maven
Выполнение заводных тестов с Maven
http://spock -framework.3207229.n2.nabble.com / Как к Надстройка Spock-тесты-к существовавшим-Maven-сборка-с-Java-блок-тесты-td7574013.html
все еще не повезло.