thymeleaf-spring4:jar 找不到工件 - gradle intellij

Posted

技术标签:

【中文标题】thymeleaf-spring4:jar 找不到工件 - gradle intellij【英文标题】:thymeleaf-spring4:jar could not find artifact - gradle intelijj 【发布时间】:2018-11-26 00:36:31 【问题描述】:

我正在尝试使用 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。当我在命令提示符下使用“spring run”时,总是遇到同样的错误: 找不到工件:thymeleaf-spring4:jar: 在本地(文件:/C:/Users/kubas/repository)。

我尝试添加“thymeleaf-spring4.jar” - 从 maven 页面下载到文件夹“repository”,但什么也没有,总是同样的错误。

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

【问题讨论】:

此代码在没有@Grab 注释且仅在 STS 中有效 【参考方案1】:

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

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

现在 thymeleaf 取自 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 文件,但它不起作用。我知道可以添加默认前缀,但我找不到有关文件的信息,我需要在其中添加它。有什么建议,如何用 gradle 项目运行这个模板?

【讨论】:

我试图更改模板的类路径,但没有发生任何事情。我添加了带有 'templateResolver.setPrefix("classpath:/templates/");' 的新配置类什么都没有【参考方案2】:

我解决了这个问题。我使用了 .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
    

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

【讨论】:

以上是关于thymeleaf-spring4:jar 找不到工件 - gradle intellij的主要内容,如果未能解决你的问题,请参考以下文章

错误: 找不到或无法加载主类 org.apache.sqoop.Sqoop

在 CMS Magnolia 5.7.4 中找不到 AddHeadersFilter

Thymeleaf-Spring4 无法自动装配 TemplateEngine

Thymeleaf-spring boot 的模型属性为空

java生成json

spring整合thymeleaf