Вы должны принять, вероятно, взглянуть на Jhipster (http://jhipster.github.io/)
Кстати, для моих проектов, я предпочитаю четко отделить код клиента от кода сервера. Каталог «project-client» для JS-кода, рядом с каталогом «project-server» с кодом Java.
У первого есть, очевидно, «стандартная структура файлов 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. Он окончательно копирует финальную банку и файлы javascript в окончательный и глобальный каталог сборки. Имя JS-файлов, содержащее хэш, вы должны сохранить эту мощную функцию! - передаются в файл conf, который используется приложением Java.