gradle - Building a project with Groovy extension methods in it -


i'm trying build simple groovy project contains package groovy extension method.

when try compile project classes using extension method can't find it. descriptor , class picked correctly ide.

i guess problem extension method needed @ compile time hasn't been compiled yet. i've tried creating different sourcesets no success.

dependencies {     compile 'org.codehaus.groovy:groovy:2.4.7'     compile 'org.membrane-soa:service-proxy-core:4.2.2'     testcompile 'org.spockframework:spock-core:1.0-groovy-2.4'     extensioncompile 'org.codehaus.groovy:groovy:2.4.7' }  sourcesets {     extension {         groovy {             include '**/closureextension.groovy'         }     }     main {         groovy {             compileclasspath += extension.output         }     } } 

the extension method lives in src/main/groovy/com/predic8/membrane/dsl/extension , rest of project in src/main/groovy/com/predic8/membrane/dsl/.

p.s.: project classes annotated @compilestatic.

one approach: separate extension code own project, , produce jar project. then, in project, dsl code can use jar , specify extension jar as dependency.

this make huge answer, mocked , placed on github here (with due credit mrhaki's post). there 2 projects: extension , dsl. assuming understand multi-project builds in gradle, essence line dsl/build.gradle:

compilegroovy.dependson tasks.getbypath(':extension:jar')  

Comments