Сборка React-модуля при запуске mvn package
У меня есть проект написанный на Spring Framework, внутри которого находиться модуль написанный на React. Вопрос по поводу того, как можно настроить автоматический запуск npm install и npm run build при запуске команды mvn package, чтобы по итогу в .jar попадал этот самый модуль со всеми зависимостями от Node.js.
Если формулировка не очень понятная, то говорите, я добавлю больше подробностей.
P.S. Пробывал пользоваться npm-maven-plugin, но не разобрался как его настроить правильно.
Ответы (1 шт):
Автор решения: ulxanxv
→ Ссылка
Проблему решил, использовав frontend-maven-plugin и maven-resources-plugin, в итоге получились такие плагины в pom.xml
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<workingDirectory>${project.basedir}/<путь до модуля React></workingDirectory>
</configuration>
<executions>
<execution>
<id>install node</id>
<goals>
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
<yarnVersion>${yarn.version}</yarnVersion>
</configuration>
</execution>
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>yarn build</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/<путь до модуля React>/build</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>