Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Sprint引导服务公共文件,而不必将它们放在绝对路径或资源中_Java_Spring_Spring Boot_Gradle - Fatal编程技术网

Java 使用Sprint引导服务公共文件,而不必将它们放在绝对路径或资源中

Java 使用Sprint引导服务公共文件,而不必将它们放在绝对路径或资源中,java,spring,spring-boot,gradle,Java,Spring,Spring Boot,Gradle,我正在寻找解决我的开发流程问题的方法 简而言之,我有一个前端(React,NPM)和一个后端(Spring Boot 2,Gradle) 我希望后端服务于前端文件本身(而不是像我过去那样通过单独的Express服务器服务) 但是,我不想将它们放在资源目录中,并让后端构建管道也构建前端,因为我必须为每一个小更改重新编译它们。相反,我希望能够使用一个NPM命令(比如npmstart),它将持续监视和构建我的前端代码 这意味着我希望前端文件位于独立JAR之外 我的问题是,我无法找到一个好的机制来以相对

我正在寻找解决我的开发流程问题的方法

简而言之,我有一个前端(React,NPM)和一个后端(Spring Boot 2,Gradle)

我希望后端服务于前端文件本身(而不是像我过去那样通过单独的Express服务器服务)

但是,我不想将它们放在资源目录中,并让后端构建管道也构建前端,因为我必须为每一个小更改重新编译它们。相反,我希望能够使用一个NPM命令(比如
npmstart
),它将持续监视和构建我的前端代码

这意味着我希望前端文件位于独立JAR之外

我的问题是,我无法找到一个好的机制来以相对的方式引用它。我知道我可以将它放在一个绝对路径上找到它,但这意味着每个开发人员都必须设置它(如果使用相同类型的工作流开发多个项目,则无法工作)


如何以相对方式引用我的
public
目录,或者在后端生成管道之外生成这些文件?

您可以指定额外的资源处理程序,使spring也可以在外部位置查找资源。如果我这样做的话,我很肯定它会在构建时将其拉入资源中,这意味着它只会在我重新编译后端时接收更改,这是我想要避免的。为什么它不会在更新后的资源发生更改后再拉入?当然,假设您适当地设置了缓存周期,我希望使用NPM任务连续构建静态文件,与构建后端的Gradle任务分开运行。我希望能够运行后端,更新前端,然后查看更改(无需重新启动后端)。将资源处理程序添加到应用程序(不是构建规范)中,指向外部路径,将使spring在运行时查找该外部路径上的资源。正如Ben所说,最多应该有缓存问题,这很容易配置。您是否至少费心阅读参考问题并接受答案?