这就是我需要的:
我的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/