gradle - 在 Gradle 中,是否有支持静态方法获取项目实例的方式?
问题描述
我的构建有一些静态实用程序方法,目前它们有一个项目参数,因此它们可以访问任何东西,包括根项目。但是有没有办法省略那个参数跳过,只使用类似的东西:
Project rootProject = DefaultProject.project(":")
Gradle 6.6.1 API 将 Project 定义为一个接口,它的文档没有提到任何静态方法。我正在避免使用该org.gradle.api.internal.project.
软件包,我想坚持使用受支持的 API。
解决方案
但是有没有办法省略那个参数跳过,只使用类似的东西:
您基本上会在构建生命周期期间为项目引用分配一个全局静态变量,但不能保证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 构建生命周期的静态实用程序方法并不是最好的。相反,如果这些实用程序方法正在执行大量工作或对项目进行修改,则考虑将该逻辑迁移到自定义 Gradle 插件和/或自定义 Gradle 任务。
通过这样做,Gradle 将能够缓存并进行任何优化,这将导致改进的构建。
推荐阅读
- if-statement - 仅当满足条件时才打开绘图之间的填充
- ajax - 如何在 apex.server.process pageItems 参数中发送列项目?
- python - for循环中的Pandas DataFrame连接返回空DataFrame
- c++ - C++ Dll 导入函数到 VB
- reactjs - React-router 获取嵌套路由路径名的最佳实践
- django - 使用桥接表的多对多关系的 Django QuerySet
- pg-promise - 如何处理 ParameterizedQuery 的错误?
- rasa-nlu - 如果单词中有下划线,如何修复 Rasa Nlu Confidence 给 0?
- splunk - Splunk 图表函数在尝试舍入输入时显示零值
- c - For 循环运行太频繁