gradle - 如何访问文件复制过滤器任务中的行号?

标签 gradle

这就是我需要的:

我的javascript文件中有日志语句,它们看起来像这样:

log.d(“一些日志消息在这里”)

我想在复制任务期间为这些名称动态添加精细的名称和行号。
好的,因此添加文件名可能很容易,但是如何获得行号呢?奇怪的是,我找不到有关如何执行此操作的任何信息。

复制任务的filter()方法仅传递实际的行,如果传递2个参数(行和行号)会很好。

这是我的任务模板。我添加了我需要实现的评论。

我知道我可以使用fileCpyDetails.getSourceName()从fileCopyDetails获取文件名,但是我被卡住了
关于如何用具有行号的新log.d语句替换以log.d()开头的行
我真的希望有人能在这里为我提供帮助。

task addLineNumbers(type: Copy) {
  into 'build/deploy'
  from 'source'
  eachFile { fileCopyDetails ->
    // Here I need to add line number to log.d("message")
    // to become log.d("[$fileName::$line] + $message")
    // for example, if original line in userdetails.js file was log.d("something logged here")
    // replace with log.d("[userdetails.js::43] something logged here")
  }

}

最佳答案

复制任务仅复制文件(它可以使用Ant filters或Groovy SimpleTemplateEngine过滤/扩展文件)。您正在寻找各种预处理器。我认为可以使用自定义的Ant过滤器来做到这一点,但这似乎需要大量工作。

我认为人们通常会在运行时使用类似的方法来查找文件/行号:How can I determine the current line number in JavaScript?

关于gradle - 如何访问文件复制过滤器任务中的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089509/

相关文章:

gradle - 使用 Gradle 无需编译 Groovy 源代码即可生成 groovydoc

android - 在 Android studio 中使用 -Xlint 重新编译

linux - Gradle 不显示任何控制台输出

bash - 通过 Shell Bash 脚本从 build.gradle 获取 Gradle 项目版本

android - 导入gradle项目,android报错

gradle - azure devops - gradle 身份验证

java - gradle包装器如何使用它的构建文件来保存安装gradle的表单?

java - 在 Gradle 中,如何生成一个 POM 文件,其中动态依赖项解析为实际使用的版本?

spring-boot - 为什么Intellij无法在Spring Boot Starter项目中识别Gradle?

gradle - 存储多个项目共有的Gradle配置