Могу ли я создать приложение с двумя реакциями в одном весеннем проекте? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть две разные части веб-приложения, это публичный сайт и сайт администратора.И я хочу создать разные приложения для обеих сторон.Для API я использую Spring-Boot.Могу ли я сделать это в моем случае?И что мне нужно добавить в файл webpack.config.js?

Я попытался создать еще одну HTML-страницу и отобразить в это приложение.Но это не работает.Потому что одно реагирующее приложение отрисовывается только один раз

Я ожидал запустить два разных приложения реакции, используя один API.

1 Ответ

0 голосов
/ 03 июля 2019

Есть 2 основных варианта:

  • Разделите 3 приложения (spring-boot, реагировать-public, реагировать-admin) на отдельные репозитории и также разверните их отдельно.
  • Используйте 1 репо для всех с мультимодульной сборкой Maven

Я собираюсь предположить из вашего вопроса, что вы хотите сделать вариант 2.

В этом случае создайте структуру, подобную этой:

+ project
| - backend-api
| - frontend-public
| - frontend-admin

Родитель pom.xml должен ссылаться на 3 модуля:

<modules>
    <module>backend-api</module>
    <module>frontend-public</module>
    <module>frontend-admin</module>
</modules>

Каждый из модулей должен ссылаться на родительский пом:

<parent>
    <groupId>com.mycompany.myproject</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

Ваш проект Spring Boot больше не сможет использовать родительский объект Spring Boot, поэтому вам необходимо импортировать зависимость спецификации:

<dependencyManagement>
    <dependencies>            
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring.boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

В модулях frontend- * вы должны создать zip-файл, который затем можно вставить в модуль Spring Boot, используя maven-dependency-plugin:

<plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unzip-webapp-public</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.mycompany.myproject</groupId>
                                <artifactId>frontend-public</artifactId>
                                <version>${project.parent.version}</version>
                                <classifier>distribution</classifier>
                                <type>zip</type>
                            </artifactItem>
                        </artifactItems>
                        <outputDirectory>${project.build.directory}/classes/static/public</outputDirectory>
                    </configuration>
                </execution>

распакуйте-WebApp-админ Процесс-ресурсы распаковывать com.mycompany.myproject фронтенд-администратор $ {Project.parent.version} распределение застежка-молния $ {Project.build.directory} / классы / статический / админ

Это разархивирует приложения реакции на /static/public и /static/admin. В результате Spring Boot будет обслуживать их в /public и /admin в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...