Gradle中不同block间的引用如何传递?作用域问题?
dependencies {
//..
if (!is_debug) {
getModuleNameStartsWith {
it.startsWith(":module")
}.each {
println("implementation project ===> ${it}")
implementation project(it)
}
}
}
def getModuleNameStartsWith(def start) {
def settings = new File("${rootDir}/settings.gradle")
//根据settings内容找到符合条件(start函数)的module
return names
}
这是我的一个方法,目的是从 settings
中找到合适的module
然后在app
中依赖他们。
我需要在dependencies
的block
中implementation project(it)
,如果把这个implementation
放到getModuleNameStartsWith
函数中就不行了
Could not find method implementation() for arguments [project ':module1'] on project ':app' of type org.gradle.api.Project. Open File
会提示Could not find method
,即使我在dependencies
block
中将this
传入getModuleNameStartsWith
.也不行。所以我应该怎么做?可以让我在函数中调用implementation()
方法。
因为我想让我的函数改成这样。
//原函数
if (!is_debug) {
getModuleNameStartsWith {
it.startsWith(":module")
}.each {
println("implementation project ===> ${it}")
implementation project(it)
}
}
dependModules(is_debug){
it.startsWith(":module")
}
//...
def getModuleNameStartsWith(def isDebug, def start)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论