运行这个Groovy脚本时,幕后发生了什么?

运行这个Groovy脚本时,幕后发生了什么?,groovy,dependencies,geb,grape,Groovy,Dependencies,Geb,Grape,我刚刚在Eclipse中创建了我的第一个Groovy项目,并在项目中创建了我的第一个Groovy类。为班级编写的所有内容如上所述。当我运行脚本时,它没有抛出任何错误,也不会及时终止 它是否试图下载所有带注释的依赖项?如果是,它是否需要在每次运行时下载依赖项?还是一劳永逸?运行此操作时,它将检查是否已下载每个带有@Grab注释的库的正确版本,如果未下载,将尝试下载。不仅是命名库,还有这些库的依赖关系 所以,是的,第一次运行它可能需要一些时间。后续运行所需的时间应少得多 请注意,这只是一种方便。您还

我刚刚在Eclipse中创建了我的第一个Groovy项目,并在项目中创建了我的第一个Groovy类。为班级编写的所有内容如上所述。当我运行脚本时,它没有抛出任何错误,也不会及时终止


它是否试图下载所有带注释的依赖项?如果是,它是否需要在每次运行时下载依赖项?还是一劳永逸?

运行此操作时,它将检查是否已下载每个带有@Grab注释的库的正确版本,如果未下载,将尝试下载。不仅是命名库,还有这些库的依赖关系

所以,是的,第一次运行它可能需要一些时间。后续运行所需的时间应少得多

请注意,这只是一种方便。您还可以下载所需的库,并在'groovy'命令的-classpath参数中指定它们(并删除Grapes/Grab构造)


有关更多信息,请参见

顺便问一下,它们下载到哪个目录?我还想知道是否有办法跟踪下载过程。默认情况下,它在您的主目录中是.groovy/grape,所以~/.groovy/grape在Linux/OS X上。如果您在Windows上,那么我不确定.groovy的位置-它可能取决于Windows的版本,您的猜测和我的一样好。
@Grapes([
    @Grab("org.codehaus.geb:geb-core:0.7.2"),
    @Grab("org.seleniumhq.selenium:selenium-firefox-driver:2.15.0"),
    @Grab("org.seleniumhq.selenium:selenium-support:2.15.0")
])
import geb.Browser

Browser.drive {
  // Load the page
  go "http://www.whu.edu.cn"

  // $("a") returns all hyperlinks on the page, similar to jQuery
  $("a").each { a ->
     // Display the required link properties and attributes
     println """
        The link to '${a.@href}' with text '${a.text()}' is at location (${a.x}, ${a.y}),
        with a height of ${a.height}px and a width of ${a.width}px.
     """
  }
}