使用 Java 和 Vue 创建 Web 应用程序的更好方法

Better way to create a web application with Java and Vue

我开始深入了解 Web 开发。目前,我将 Spark Framework 与 Vue 一起用于我制作的几个应用程序。虽然这确实有效,但并不理想。

该项目是使用 Maven(和 Vue 的 NPM)构建的,构建过程如下所示。

  1. Maven打包Spark框架Java应用程序
  2. Maven(与 frontend-maven-plugin) 下载 node/npm 并构建 Vue 前端
  3. Maven将编译后的资源作为静态资源复制到jar中

所以文件系统看起来像这样

/src/main/java(Spark 框架)

/src/main/resources (Vue)

这会导致一些烦恼。

  1. 一切都在一个存储库中。理想情况下,我能够为项目的每一层都有一个单独的回购协议(一个用于 Java,一个用于 Vue)
  2. 开发工作流程不理想。如果我只是想测试应用程序的Java部分,我仍然花时间编译前端(Vue)
  3. 一个小问题,但在 IDE 中工作时,我正在处理深度嵌套的文件夹。任何时候我想编辑前端,我的文件夹结构看起来像 /src/main/resources/project-vue/

Here's one of my projects that uses this model

所以我的问题是:构建我的应用程序的更好方法是什么?

我花了几个月的时间思考,在那段时间我用 Vue 创建了更多的应用程序,这是我开始采用的工作流程。

我为任何不止一层的项目创建了一个 GitHub 组织。例如,我的许多项目都有一个用 Java 或 JavaScript 编写的 REST API,以及一个使用 Vue 的 Web 界面。该组织将包含每个层的存储库。这是一个 link 给一个遵循这个想法的组织。

这让我可以分离我的后端和前端,但它使部署变得复杂。我不能再使用与 API 相同的 Web 服务器来提供我的 Vue 文件,但进一步思考这可能是一件好事。

通过这种模式,我可以在非常便宜的 Amazon S3 上托管我的静态 Vue 站点,并使用 Heroku 的免费 dynos 来托管我的 API。