2017-10-21 36 views
0

我有一个基本的Java应用程序,我想使用WebJars。我使用Gradle作为我的构建系统。我想使用WebJars作为Bootstrap和JQuery,这样我就可以在Spring-Boot/ThymeLeaf应用程序中轻松地引用和更新它们。该应用程序基本上是从形式教程位于hereGradle不是将WebJar的内容放置在我的Jar文件中的正确位置

据我了解,它应该将所有文件从WebJar放入我的jar文件中的META-INF文件夹。如果我理解正确的一切春节,引导资源处理程序将然后从META-INF/加载资源时,我引用我的html页面的东西,与/webjars/

开始不幸的是,这并不工作(还)。因为我在Tomcat的日志输出中看到资源处理程序已正确安装。我决定检查这些文件是否在我的Jar文件中。

当我提取我的Jar文件时,META-INF文件夹只有一个名为MANIFEST.MF的文件,其中包含有关Spring Boot的一些信息。在BOOT-INF/lib中有一个BootStrap-3.3.7.Jar和一个JQuery-3.2-1.Jar文件,但我不认为这是它们应该结束的地方。 (或者我错了,是否在资源处理程序中有错误?)。

当我运行gradle build时,如何告诉gradle使用这些文件做正确的事情?

我gradle.build文件看起来像这样:

buildscript { 
    ext { 
     springBootVersion = '1.5.8.RELEASE' 
    } 
    repositories { 
     mavenCentral()  
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")   
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'org.springframework.boot' 
apply plugin: "jacoco" 

jar { 
    baseName = 'gs-serving-web-content' 
    version = '0.0.1' 
} 

bootRun { 
    addResources = true 
} 

repositories { 
    mavenCentral() 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-thymeleaf") 
    compile("org.webjars:jquery:3.2.1") 
    compile("org.webjars:bootstrap:3.3.7") 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
} 

回答

1

摇篮是做正确的事情的罐子应该BOOT-INF/lib包装。然后将BOOT-INF/lib中每个罐子的根目录添加到类路径中,在该类路径中应找到META-INF内容中的每个罐子相关内容。

我建议问另一个问题,重点关注你的应用程序在运行时做什么。据我所知,一切都按照它在建造时应该的那样工作。

+0

感谢您的回答。你说得对,gradle是做对了。似乎有人对此感到困惑,这使我误以为相信的石was是错误的。事实证明,它只是Eclipse的行为。从控制台构建一切正确。 :/。重新启动可能会重新启动Eclipse。 –

+0

是的,重新启动Eclipse +从Eclipse刷新gradle项目,然后搞乱启动配置(出错了),修复它。 :/ –

相关问题