代码之家  ›  专栏  ›  技术社区  ›  mike rodent

带有@指令的Groovy脚本“意外令牌”

  •  0
  • mike rodent  · 技术社区  · 6 年前

    这让我完全困惑了。

    规格:Linux Mint 18.3,Java 11,Groovy 2.5.9。

    这些文件位于NTFS格式的分区上,这可能很有趣。

    我用一个简单的@Grab创建了一个简单Groovy脚本文件:

    package test;
    @Grab(group='org.apache.commons', module='commons-lang3', version='3.7')
    println "bye"
    

    …失败:

    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    /media/chris/W10 D drive/My Documents/software projects/EclipseWorkspace/GroovyExp2020-03-08/src/test/testscript.groovy: 5: unexpected token: println @ line 5, column 1.
       println "bye"
       ^
    
    1 error
    

    如果我发表评论 @Grab 线路运行正常。

    如果我这样写剧本:

    package test
    def bosh = "jellow world"
    bosh = "bash"
    @Grab(group='org.apache.commons', module='commons-lang3', version='3.7')
    bosh = "bish"
    

    …在最后一行标记的投诉更改为“Groovy:当前作用域已经包含一个名为bosh的变量”(!)。

    如果我在Grab行末尾加一个分号:

    package test;
    @Grab(group='org.apache.commons', module='commons-lang3', version='3.7');
    println "bye"
    

    …投诉变成了“意外令牌:;”

    到目前为止,令人费解。然而,更奇怪的是,我现有的一些脚本仍然可以正常工作:我可以插入一个 @抓 像上面这样的行,没有关于“意外令牌”的抱怨。

    这不是Eclipse生成的废话:我在Linux CLI上也遇到了同样的问题。

    0 回复  |  直到 6 年前
        1
  •  3
  •   tim_yates    6 年前

    你不能在groovy(或Java)中的任何地方粘贴注释

    您需要注释类、方法或字段

    在您的示例中,您正在注释变量赋值(这不起作用)和方法调用(这也不起作用

    将注释移动到文件顶部或类定义中