0

Я создал приложение Spring Boot, и я хочу развернуть веб-интерфейс, созданный через Yeoman (угловой генератор). Однако я не могу заставить работать: когда я запускаю приложение, мои статические ресурсы развертываются для производства (localhost: 8080/dist/index.html работает классно), а не для разработки (localhost: 8080/app/index.html не работает круто).Spring Boot Maven Плагин и Grunt с живой перезагрузкой

Я переместил всю структуру переднего конца в static. Через терминал я могу подключиться к этой папке (src/main/resources/static) и запустить grunt build и grunt serve; таким образом, когда я работаю над интерфейсом, я могу использовать живую перезагрузку.

Затем я создал следующий скрипт в корне проекта, чтобы построить свой передний конец через ворчание:

echo 'Running grunt build...' 
cd src/main/resources/static 
grunt build 
echo 'Done running grunt' 

Я изменил мой pom.xml следующим образом:

<build> 
<plugins> 
    <plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    </plugin> 

    <plugin> 
    <artifactId>exec-maven-plugin</artifactId> 
    <groupId>org.codehaus.mojo</groupId> 
    <executions> 
     <execution> 
     <id>Grunt build</id> 
     <phase>install</phase> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>${basedir}/runGrunt.sh</executable> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

</plugins> 
</build> 

Теперь, когда я выполнить mvn spring-boot:run , мои проекты Spring запускаются правильно, но grunt построен для производства (доступ к app/index.html не позволяет мне загружать угловые & co).

Как я могу подключить вещи, так что я могу выполнить mvn spring-boot:run и получить мой передний конец проект компилируется, развертываются и с живым перезаряжанием (то есть я хочу получить доступ к локальному: 8080/приложению/index.html и получить угловые & со загружен) ?

ответ

0

В качестве частичного решения я выбрал запуск нового сервера на порте 9000 (по умолчанию) для обслуживания файлов каждый раз, когда запускаю приложение.

необходимы две вещи: (1) заменить Exec-Maven-плагин часть с этим:

<plugin> 
    <artifactId>exec-maven-plugin</artifactId> 
    <groupId>org.codehaus.mojo</groupId> 
    <version>1.4.0</version> 
    <configuration> 
      <executable>${basedir}/runGrunt.sh</executable> 
    </configuration> 
</plugin> 

(2) Выполнение Maven цели Exec: EXEC перед запуском приложения.

Таким образом, интерфейс не доступен на порту 8080, но он правильно работает на 9000 без необходимости вручную запускать команду для ее обслуживания.

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