gpt4 book ai didi

java - 如何获取项目并从方法内部调用其 "compile"方法?

转载 作者:行者123 更新时间:2023-11-30 06:22:42 26 4
gpt4 key购买 nike

我有一个方法,它有一些逻辑来知道是通过编译还是通过编译项目包含依赖项。但当我做第二个时,它说:

Could not find method compile() for arguments [project ':my-lib'] on project ':parent-lib' of type org.gradle.api.Project

如何在方法内对项目进行编译?

ext.includeSpecial = {moduleName ->

//...elided...

compile project( ":${moduleName}" )
}

dependencies {

//This works
//compile project(':my-lib')

//But this does not
includeSpecial( "my-lib" )
}

最佳答案

不要尝试调用 compile 方法,它仅为某些隐藏的依赖处理程序类定义,而是定义一个返回参数的方法来编译/在dependency闭包内,您可以编写groovy代码并调用方法,例如:

def specialDependency() {
// if / else
}


dependencies {
compile specialDependency()
}

您可以获得更多结果,例如 https://discuss.gradle.org/t/programmatically-adding-dependencies/7575/12通过搜索“以编程方式在 gradle 中添加依赖项”。

更多解释,gradle 实际上不是声明性的,因此依赖项 block

dependencies {
compile "foo"
}

实际上是一个闭包,与此相同:

project.dependencies({DependencyHandler handler ->
handler.compile("foo");
})

关于java - 如何获取项目并从方法内部调用其 "compile"方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47802929/

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