Spring Boot推断@Grab坐标不起作用

时间:2017-09-25 11:40:44

标签: spring spring-boot groovy

Groovy的

Spring Boot CLI documentation说:

  

Spring Boot通过允许您指定没有组或版本的依赖项来扩展Groovy的标准@Grab支持,例如@Grab('freemarker')。这将参考Spring Boot的默认依赖关系元数据来推断工件的组和版本。

但是,当省略组和版本时,我的测试应用程序确实有效。 如果我使用@Grab('freemarker')而不是@Grab('spring-boot-starter-freemarker'),则应用程序会因Whitelabel错误而失败。文档错了吗?我使用的是最新的Spring Boot CLI 1.5.7。

.
├── app.groovy
├── static
│   └── index.html
└── templates
    └── hello.ftl

这是项目结构。

@Controller
@Grab('spring-boot-starter-freemarker')
class MyApp {

    @RequestMapping("/greet")
    String home(Model model, @RequestParam String name) {

        model.addAttribute("myname", name)
        return "hello"
    }
}

这是主要的Groovy应用程序文件app.groovy

<!DOCTYPE html>
<html>
    <head>
        <title>Home page</title>
        <meta charset="UTF-8">
    </head>
    <body>

        <form action="/greet">
            <label>Enter your name:</label>
            <input type="text" name="name">

            <button type="submit">Submit</button>            
        </form>                        
    </body>
</html>

这是index.html主页,位于static目录。

<!DOCTYPE html>
<html>
    <head>
        <title>Home page</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <p>Hello ${myname}, today is a beautiful day!</p>
    </body>
</html>

最后,这是Freemarker模板文件hello.ftl,位于templates目录中。该应用程序使用spring run app.groovy运行。

0 个答案:

没有答案