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

时间:2012-12-14 03:53:32

标签: groovy dependencies geb grape

@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.
     """
  }
}

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

是否尝试下载所有带注释的依赖项?如果是这样,每次运行时是否需要下载依赖项?或者一劳永逸?

1 个答案:

答案 0 :(得分:2)

当你运行它时,它将检查是否已经下载了使用@Grab注释的每个库的正确版本,如果没有,将尝试下载它。它不仅仅是命名库,也是那些库的依赖。

所以,是的,第一次运行它可能需要一些时间。后续运行应该花费更少的时间。

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

有关详细信息,请参阅http://groovy.codehaus.org/Grape