带有Gradle和Webpack的Spring Boot

Kir*_*nin 5 javascript java spring gradle webpack

我在客户端上有一个用Spring Boot和JS编写的应用程序。所有JS和CSS代码都存储在src/main/webappWebpack 中,并用Webpack编译到同一目录中。将编译后的捆绑软件放在那里似乎很脏,但是我想知道是否有一种方法可以将其存储在构建目录中吗?

我设法使用中的下一个代码将其添加到war文件中 build.gradle

from("${buildDir}") {
    include 'bundle.js'
}
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在bootRun任务或Intellij Idea中达到相同的效果。

另外,如何排除存储在src/main/webapp/js和中的源文件src/main/webapp/scss?以及存在哪些最佳实践来管理Web资产?

mlo*_*ber 1

你可能应该看看 Jhipster ( http://jhipster.github.io/ )

顺便说一句,对于我的项目,我显然更喜欢将客户端代码与服务器代码分开。用于 JS 代码的“project-client”目录,位于包含 Java 代码的“project-server”目录旁边。

前一个显然具有“标准 Java”文件结构。

对于第一个,JS 现在有自己的标准。好吧,它们还不是很稳定;),但仍然如此。你的 JS 源代码可以是你源代码的一半或更多,它的位置可能不在你的 Java 项目的子目录中......

而且像Webpack这样的工具非常强大。Webpack 可以在相关时嵌入样式、图像或其他资源。源文件/资源​​文件/构建产品文件应该像在 Java 项目中一样清晰地分开。

开发时,使用webpack服务器。我的index.html主机页面(由Java服务器应得)仅指向localhost:[webpack-port] / main.js

然后是全局构建的问题,这个问题可以通过 Gradle 轻松解决。Gradle 调用 NPM(感谢https://github.com/srs/gradle-node-plugin)来测试和构建 JS 部分,然后构建 Java 部分。它最终将最终的 jar 和 javascript 文件复制到最终的全局构建目录中。JS 文件的名称 - 包含哈希值,您应该保留这个强大的功能!- 被赋予 Java 应用程序使用的 conf 文件。