thymeleaf-spring4:jar找不到神器 - gradle intelijj

时间:2018-06-16 12:24:13

标签: spring-boot gradle groovy thymeleaf

我尝试使用gradle,groovy和spring-boot框架构建一个简单的应用程序,并使用以下代码:

@Grab("thymeleaf-spring4")

@Controller
class ViewBasedApp {
    def chapters = ["Quick Start With Groovy",
                    "Quick Start With Java",
                    "Debugging and Managing Your App",
                    "Data Access with Spring Boot",
                    "Securing Your App"]
    @RequestMapping("/")
    def home(@RequestParam(value="name", defaultValue="World") String n) {
        new ModelAndView("home")
                .addObject("name", n)
                .addObject("chapters", chapters)
    }
}

这是我的build.gradle文件:

group 'LoginApp'
version '1.0-SNAPSHOT'

apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile("org.springframework.boot:spring-boot-starter-web")
    //compile("org.thymeleaf:thymeleaf-spring4") //first try
   // compile("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect") //first try
    compile 'org.springframework:spring-webmvc:3.0.0.RELEASE'

    // https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring4 //secound try
    compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.0.RELEASE'
   // compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '4.1.6.RELEASE' //third try
}

html文件:

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Learning Spring Boot - Chapter 1</title>
</head>
<body>
<p th:text="'Hello, ' + ${name}"></p>
<ol>
    <li th:each="chapter : ${chapters}" th:text="${chapter}"></li>
</ol>
</body>
</html>

要使用spring boot CLI启动我的应用程序。当我一直在使用&#34; spring run&#34;在命令提示符下,我总是遇到同样的错误: 找不到工件:thymeleaf-spring4:jar:in local(file:/ C:/ Users / kubas / repository)。

我试图添加&#34; thymeleaf-spring4.jar&#34; - 从maven页面下载到文件夹&#34; repository&#34;什么都没有,总是一样的错误。

有人可以对此提出建议吗?

2 个答案:

答案 0 :(得分:0)

我通过从本地存储库添加依赖项来解决问题:

buildscript {
    repositories {
        mavenLocal()
    }
    dependencies {
        classpath("org.thymeleaf:thymeleaf-spring5:3.0.9.RELEASE")
    }
}
repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect") //first try
    compile 'org.springframework:spring-webmvc:4.0.6.RELEASE'
    compile 'org.springframework:spring-web:4.0.6.RELEASE' //@EnableWebMvc @ComponentScan
}

现在百里香取自C:\ Users \ kubas \ org \ thymeleaf \ thymeleaf-spring5

我必须将app.groovy中的注释更改为@Grab("thymeleaf-spring5")

但现在我无法配置模板文件的路径。我这个文件的路径是: F:\ gradle_login_aPP \ src \ main \ resources \ templates ...这是错误:

  

找不到模板位置:classpath:/ templates /

我尝试在\ src \ main \ resources \中添加application.properties文件,但它不起作用。我知道可以添加deafult preffix,但我找不到有关文件的信息,我需要添加它。任何建议,如何使用gradle项目运行此模板?

答案 1 :(得分:0)

我解决了这个问题。我使用了.html文件,这就是在控制器类中使用此文件的方式:

@RestController
class LoginServiceApplication {

    @RequestMapping("/")
    String home() {
        def htmlContent = new File("F:\\APKA_W_SPRINGU\\Spring-apps-master\\AppWithLoginPage\\LoginService\\src\\main\\resources\\templates\\index.html").text

        htmlContent
    }
}

对于第一个问题-我所要做的就是使用按钮run在intelijj中运行主类(类不得包含@Grab注释!),在解决此问题之前,我正在使用spring CLI,这是一个问题。现在一切正常。