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

Jer*_*erd 5 java maven node.js vue.js spark-framework

我开始更多地进入网络开发。目前,我将 Spark 框架与 Vue 一起用于我制作的少数应用程序。虽然这当然有效,但并不理想。

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

  1. Maven 打包 Spark Framework Java 应用程序
  2. Maven(带有frontend-maven-plugin)下载node/npm并构建Vue前端
  3. Maven将编译好的资源作为静态资源拷贝到jar中

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

/src/main/java(Spark 框架)

/src/main/resources (Vue)

这会导致一些烦恼。

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

这是我使用此模型的项目之一

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

Jer*_*erd 2

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

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

这允许我将后端和前端分开,但它使部署变得复杂。我无法再使用与 API 相同的 Web 服务器来提供 Vue 文件,但经过进一步思考,这可能是一件好事。

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