gpt4 book ai didi

gradle - 使用其中的Groovy扩展方法构建项目

转载 作者:行者123 更新时间:2023-12-03 03:49:59 25 4
gpt4 key购买 nike

我正在尝试构建一个简单的Groovy项目,其中包含带有Groovy扩展方法的包。

当我尝试编译项目时,使用扩展方法的类找不到它。 IDE正确选择了描述符和类。

我想问题是在编译时需要扩展方法,而扩展方法可能还没有被编译。
我尝试创建不同的sourceSet,但没有成功。

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
}
}
}

扩展方法位于src / main / groovy / com / predic8 / membrane / dsl / extension中,其余项目位于src / main / groovy / com / predic8 / membrane / dsl /中。

P.S .:所有的项目类别均以@CompileStatic进行注释。

最佳答案

一种方法:将扩展代码分成自己的项目,然后从该项目中产生一个jar。然后,在另一个项目中,DSL代码可以使用该jar并将扩展jar指定为依赖项。

这将是一个巨大的答案,因此我将其模拟并放置在GitHub here上(所有应归功于mrhaki's post)。有两个项目:extensiondsl。假设您了解Gradle中的多项目构建,本质就是dsl/build.gradle的这一行:

compileGroovy.dependsOn tasks.getByPath(':extension:jar') 

关于gradle - 使用其中的Groovy扩展方法构建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38697952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com