我在许多SBT代码中都看到了这个<<=符号,但我没有这样做。

我也尝试使用谷歌搜索这个符号,但没有得到任何答案。

您能给我指出一些文档或示例,以清楚地说明此符号的含义和作用吗?

最佳答案

哦,深入的解释很复杂。

基本上,签名是:

def <<= (app: Initialize[Task[S]]): Setting[Task[S]]  =  macro std.TaskMacro.itaskAssignPosition[S]

因此它涉及到此宏:
/* Implementations of <<= macro variations for tasks and settings. These just get the source position of the call site.*/

    def itaskAssignPosition[T: c.WeakTypeTag](c: Context)(app: c.Expr[Initialize[Task[T]]]): c.Expr[Setting[Task[T]]] =
        settingAssignPosition(c)(app)

在处理AspectJ编译时,我已经使用了这种运算符:
products in Compile <<= products in Aspectj

基本上,这意味着:将代码源基于AspectJ源文件(由plugin生成),而不是经典文件。

我将其解释为一种“replaceAll/erase”:
用涉及AspectJ注释的文件替换一堆文件进行编译。

关于scala - `<<=`在SBT中是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37104892/

10-15 08:40