title: Better way to create a web application with Java and Vue
body: <p>I'm starting to get into web development a little more. Currently I use the Spark Framework along with Vue for the few apps I've made. While this certainly works it's not ideal.</p>
  
  <p>The project is built with Maven (and NPM for Vue) and the build process looks something like this.</p>
  
  <ol>
  <li>Maven packages the Spark Framework Java application</li>
  <li>Maven (with the
  frontend-maven-plugin) downloads node/npm and builds the Vue
  frontend</li>
  <li>Maven copies the compiled resources into the jar as static assets</li>
  </ol>
  
  <p><strong>So the filesystem looks something like this</strong></p>
  
  <p>/src/main/java (Spark Framework)</p>
  
  <p>/src/main/resources (Vue)</p>
  
  <p>This leads to a couple of annoyances.</p>
  
  <ol>
  <li>Everything is in one repository. Ideally I'd be able to have a separate repo for each layer of the project (One for Java, one for Vue)</li>
  <li>Development workflow isn't ideal. If I just want to test the Java part of the app, I still spend time compiling the frontend (Vue)</li>
  <li>A minor issue, but while working in an IDE, I'm dealing with deeply nested folders. Anytime I want to edit the frontend, my folder structure looks something like /src/main/resources/project-vue/</li>
  </ol>
  
  <p><a href="https://github.com/ShepherdJerred/funsheet" rel="nofollow noreferrer">Here's one of my projects that uses this model</a></p>
  
  <p>So my question is: <strong>What's a better way to structure my application?</strong></p>