gradle - 如何在gradle自定义任务中导入类?

标签 gradle

我正在尝试使用this代码摘录来将gradle日志拦截到文件中。我不想污染自己的build.gradle,因此,我创建了一个interceptor.gradle来封装此逻辑。看起来像这样:

interceptor.gradle

import org.gradle.logging.internal.*

task intercept {
    def outputStream = new File("gradle.log")
        gradle.services.get(LoggingOutputInternal).addStandardOutputListener (new StandardOutputListener () {
                void onOutput(CharSequence output) {
                    outputStream << output
                }
            }
        )
}

在我的build.gradle中,我添加了:
apply from: project.file('tooling/gradle/interceptor.gradle')
问题是:当我尝试./gradlew build时,我得到:
* What went wrong:
A problem occurred evaluating script.
> Could not get unknown property 'LoggingOutputInternal' for task ':intercept' of type org.gradle.api.DefaultTask.

如何隔离拦截gradle日志的代码,并将其保存到单独的gradle脚本中的文件中,并使其从build.gradle主代码执行?

最佳答案

尝试使用此导入import org.gradle.internal.logging.*

import org.gradle.internal.logging.*

task intercept {
    def outputStream = new File("gradle.log")
        gradle.services.get(LoggingOutputInternal).addStandardOutputListener (new StandardOutputListener () {
                void onOutput(CharSequence output) {
                    outputStream << output
                }
            }
        )
}

关于gradle - 如何在gradle自定义任务中导入类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48807514/

相关文章:

android - 在Android中,使用Gradle编译,如何在项目之间共享代码?

android - Android Gradle插件3.0.1-将字节码转换为dex时出错

android - Google Play 服务 GCM 10.0.1 要求将 “update” 返回到 9.0.0

android-studio - 错误:程序类型已存在:Android Studio中的android.support.design.widget.CoordinatorLayout $ Behavior

sqlite - 尝试访问本地数据库时,使用gradle获取java.lang.ClassNotFoundException:org.hsqldb.JDBCDriver

java - 在 Windows 10 (Intellij IDEA) 上使用 gradle 项目安装 Google or-tools

java - 对多模块 gradle 项目中模块的依赖

groovy - 使用动态对象组配置 gradle 插件扩展的正确方法

java - 如何为通过 "gradle run"启动的 Java 应用程序设置最大堆大小 (-Xmx)?

java - 更新后 TestNG 未能通过大多数测试