如何解决在Gradle中,是否有支持静态方法获取项目实例的方法?
我的构建具有一些静态实用程序方法,当前它们具有项目参数,因此它们可以访问任何内容,包括根项目。但是有没有一种方法可以忽略该参数跳过,而只需使用类似的内容:
Project rootProject = DefaultProject.project(":")
Gradle 6.6.1 API将Project定义为接口,并且其文档中未提及任何静态方法。我避免使用org.gradle.api.internal.project.
软件包,但要坚持使用受支持的API。
解决方法
但是有一种方法可以忽略该参数跳过,而只需使用类似的内容:
您基本上可以在build lifecycle期间将全局静态变量分配给项目引用,但是不能保证project
实例的状态:
public class MyUtil {
private static Project project;
public static void setProject(Project project) {
MyUtil.project = project;
}
}
Gradle 6.6.1 API将Project定义为接口,并且其文档中未提及任何静态方法。
Project
界面就是Gradle项目。这是与项目进行交互的一种方式。
拥有一堆不参与Gradle构建生命周期的静态实用程序方法并不是最大的问题。相反,如果这些实用程序方法正在执行大量工作或对项目进行修改,请考虑将该逻辑迁移到custom Gradle plugin和/或custom Gradle tasks。
这样做,Gradle将能够缓存并进行任何可能的优化,从而改善构建。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。