【问题标题】:how do you create a war for spring boot / react application您如何为 Spring Boot/React 应用程序创建战争
【发布时间】:2021-08-02 02:01:33
【问题描述】:

我有一个 spring boot 应用程序作为后端并使用 react 作为前端(两者都在同一个项目中)。我只有一个用于后端的 pom 文件,我手动运行 spring 应用程序,然后在前端执行 npm start,一切正常。我现在要做的是部署后端和前端并自动启动它们。我是否需要另一个用于前端的 POM 文件或将执行 npm 等的文件?前端是用 create-react-app 创建的,目前在端口 3000 ( "start": "react-scripts start" ) 上运行,我的后端在端口 8080 上运行,但将部署到外部 tomcat 服务器。

是否需要添加以下插件:

 <groupId>com.github.eirslett</groupId>
 <artifactId>frontend-maven-plugin</artifactId>

然后是pom中的一些执行规则?

非常感谢任何信息。

谢谢

【问题讨论】:

    标签: reactjs spring spring-boot


    【解决方案1】:

    如果你想在spring boot中创建war,你需要添加packaging作为war,spring-boot-starter-tomcat应该是&lt;scope&gt;provided&lt;/scope&gt;。我认为是的,您需要添加,请查看以下网址中的参考,

    https://github.com/spring-guides/tut-react-and-spring-data-rest/blob/master/basic/pom.xml

    参考:https://spring.io/guides/tutorials/react-and-spring-data-rest/

            <packaging>war</packaging>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
    

    【讨论】:

    • 我已经让我的 Spring Boot 应用程序使用 React 运行,并将 frontend-maven-plugin 添加到我的 pom 文件中,但我还必须在我的父元素部分中使用 com.greglturnquist 的 groupId pom文件,这是为什么呢?谢谢
    • 这是一个 Spring 提供的父 pom,它负责所有的 npm 安装等吗?
    • 这个插件在本地下载安装Node和NPM,并运行npm install。
    【解决方案2】:

    让我插嘴说点别的。如果您需要战争作为包装,您可以按照 Thangavel 所说的进行。但我有点怀疑在生产站点上进行这样的部署。

    由于您使用的是前端框架和 spring 作为后端,我会建议另一种方式。通常在构建前端之后,您将使用像 apache 或 nginx 这样的 http 服务器来部署您的构建,然后为您的 spring boot 项目部署您的 war 或 jar。

    但是,如果您想将两者保留在同一个项目中,您可以构建您的 react 项目,并且应该可以在 thymeleaf 或 JSP 视图中导入您构建的那些 JS 文件。那么你只需要在 8080 端口上运行项目。

    这是 Angular 的一个示例。我相信你可以在 React 中寻找相同的东西。

    How to include angular2/4 component in JSP page?

    请告诉我进展如何。

    【讨论】:

    • 嗨,谢谢你,我不确定你是否可以将 React 添加到 thymeleaf 视图中。
    【解决方案3】:

    如果您想要一个好的参考实现,您可以生成一个jhipster 项目并查看前端插件的使用方式。

    【讨论】:

    • 谢谢你,我会看看。
    猜你喜欢
    • 2017-12-21
    • 2017-03-11
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2022-11-10
    • 2017-03-10
    相关资源
    最近更新 更多