2015-12-05 2 views
4

У меня есть приложение, написанное с Spring Boot и JS на клиенте. Все JS & Код CSS хранится в src/main/webapp и скомпилирован с Webpack в тот же каталог. Кажется грязным, чтобы поставить скомпилированный пакет там, но мне интересно, есть ли способ сохранить его в каталоге сборки?Весенняя загрузка с Gradle и Webpack

мне удалось добавить к войне файл, используя следующий код в build.gradle

from("${buildDir}") { 
    include 'bundle.js' 
} 

Но у меня нет чувства, как добиться того же эффекта для задачи bootRun или в IntelliJ Idea.

Кроме того, как я могу исключить исходные файлы, хранящиеся в src/main/webapp/js и src/main/webapp/scss? И какие лучшие практики существуют для управления веб-ресурсами?

ответ

0

Вы должны принять, вероятно, взглянуть на 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.

1

Я изо всех сил пытался найти решение, исключающее node_modules в моем webapp. я добавил следующий блок в моей build.gradle

sourceSets { 
main { 
    resources { 
     exclude '**/node_modules' 
    } 

    } 
} 

Надеется, что это помогает.

Смежные вопросы