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
Post a Comment