plugin compiler java groovy maven compilation gmaven-plugin

compiler - Maven compila el proyecto mixto Java+Groovy 1.7, usando gmaven-plugin



groovy-eclipse-compiler maven (3)

Según las dos respuestas principales en: maven dependencies groovy . Estoy intentando compilar un proyecto mixto Java 6 + Groovy con Maven, usando el complemento GMaven de org.codehaus.gmaven. Hasta ayer estábamos usando la antigua versión 1.6.0 de Groovy (nunca la cambié después de que finalmente la pusiéramos en funcionamiento), pero como 1.7.0 ahora es estable, pensé que cambiaríamos a eso.

Si las cosas fueran así de simples ... Los problemas con los que ahora me encuentro parecen ser dos:

  • Groovy 1.6 alguna manera sigue siendo recogido como el predeterminado. (como se muestra en la pila de seguimiento a continuación)
  • groovy: generateStubs se detiene con un error de compilación: nodo inesperado: nodo [7: 1,64, ANNOTATIONS]

¿Alguien sabe cómo resolver los dos problemas anteriores, o puede proporcionar un pom de trabajo para compilar el código Java 6 entremezclado con el código de Groovy 1.7 con Maven?

Hay una gran cantidad de documentación confusa / contradictoria / obsoleta en la compilación de versiones antiguas de Groovy utilizando gmaven / groovy.maven / groovy.maven.gmaven que realmente no está ayudando en este momento ...

Como referencia, aquí hay una parte de mi pom.xml y la salida Maven -e:

<dependencies> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>1.7.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.2</version> <dependencies> <dependency> <groupId>org.codehaus.gmaven.runtime</groupId> <artifactId>gmaven-runtime-1.7</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>1.7.0</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>generateStubs</goal> <goal>compile</goal> <goal>generateTestStubs</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

Stacktrace:

[INFO] ------------------------------------------------------------------------ [INFO] Building Client [INFO] task-segment: [clean, package] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [groovy:generateStubs {execution: default}] [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Unexpected node: Node[7:1,64,ANNOTATIONS] [INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.lifecycle.LifecycleExecutionException: Unexpected node: Node[7:1,64,ANNOTATIONS] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.MojoExecutionException: Unexpected node: Node[7:1,64,ANNOTATIONS] at org.codehaus.gmaven.plugin.MojoSupport.execute(MojoSupport.java:85) at org.codehaus.gmaven.plugin.stubgen.AbstractGenerateStubsMojo.execute(AbstractGenerateStubsMojo.java:60) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) ... 17 more Caused by: org.codehaus.gmaven.runtime.support.stubgen.UnexpectedNodeException: Unexpected node: Node[7:1,64,ANNOTATIONS] at org.codehaus.gmaven.runtime.support.stubgen.parser.NodeSupport.ensure(NodeSupport.java:96) at org.codehaus.gmaven.runtime.support.stubgen.model.ModelFactorySupport.identifier(ModelFactorySupport.java:896) at org.codehaus.gmaven.runtime.support.stubgen.model.ModelFactorySupport.importDef(ModelFactorySupport.java:185) at org.codehaus.gmaven.runtime.support.stubgen.model.ModelFactorySupport.process(ModelFactorySupport.java:122) at org.codehaus.gmaven.runtime.support.stubgen.model.ModelFactorySupport.create(ModelFactorySupport.java:90) at org.codehaus.gmaven.runtime.support.stubgen.model.ModelFactorySupport.create(ModelFactorySupport.java:61) at org.codehaus.gmaven.runtime.v1_6.StubCompilerFeature$StubCompilerImpl.render(StubCompilerFeature.java:101) at org.codehaus.gmaven.runtime.v1_6.StubCompilerFeature$StubCompilerImpl.compile(StubCompilerFeature.java:90) at org.codehaus.gmaven.plugin.stubgen.AbstractGenerateStubsMojo.compile(AbstractGenerateStubsMojo.java:160) at org.codehaus.gmaven.plugin.stubgen.AbstractGenerateStubsMojo.process(AbstractGenerateStubsMojo.java:131) at org.codehaus.gmaven.plugin.ComponentMojoSupport.doExecute(ComponentMojoSupport.java:60) at org.codehaus.gmaven.plugin.MojoSupport.execute(MojoSupport.java:69) ... 20 more


Eso también funciona para mí con una pequeña adición:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin>

Tal vez hay una manera de hacer esto el predeterminado?


Yo tuve el mismo problema. Me faltaba la configuración de configuración providerSelection para 1.7.

Pruebe esta configuración y debería funcionar para usted.

<plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.2</version> <configuration> <providerSelection>1.7</providerSelection> </configuration> <dependencies> <dependency> <groupId>org.codehaus.gmaven.runtime</groupId> <artifactId>gmaven-runtime-1.7</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>1.7.0</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>generateStubs</goal> <goal>compile</goal> <goal>generateTestStubs</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin>


<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <compilerId>groovy-eclipse-compiler</compilerId> </configuration> <dependencies> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-eclipse-compiler</artifactId> <version>2.8.0-01</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-eclipse-batch</artifactId> <version>2.1.5-03</version> </dependency> </dependencies> </plugin> </plugins>

Ver este artículo, me ayudó a compilar tanto Java como Groovy

Groovy Java compila junto