springboot实现web打jar包

时间:2024-03-17 12:13:49

实现web打jar包有俩种方式:

方式一:

前端开发好后将build构建好的文件拷贝到springboot的resources的static下(boot项目默认没有static,需要自己新建)

操作步骤:前端的项目使用命令 npm run build 或者 cnpm run build 打包生成web文件,在springboot项目中resources下建立static文件夹,将web文件中的文件复制到static中,然后去application中跑起来boot项目,这样直接访问index.html就可以访问到页面(api接口请求地址自己根据情况打包时配置或者在生成的web文件中config文件夹中的index.js中配置)

项目构建如下:

springboot实现web打jar包

将构建的好的前端项目拷贝到该目录下然后对springboot进行打包即可

方式二:

在src/main下建立一个webapp文件夹,然后将前端项目的源文件复制到该文件夹下,具体结构如图

springboot实现web打jar包

 使用maven命令执行本地node打包命令,在执行mvn clean package命令时,利用maven插件执行cnpm run build命令。

实现方式:引入org.codehaus.mojo插件来进行maven调用node命令,pom.xml中为:

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
 
            <execution>
                <id>exec-cnpm-install</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
                <configuration>
                    <executable>${cnpm}</executable>
                    <arguments>
                        <argument>install</argument>
                    </arguments>
                    <workingDirectory>${basedir}/src/main/webapp</workingDirectory>
                </configuration>
            </execution>
 
            <execution>
                <id>exec-cnpm-run-build</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
                <configuration>
                    <executable>${cnpm}</executable>
                    <arguments>
                        <argument>run</argument>
                        <argument>build</argument>
                    </arguments>
                    <workingDirectory>${basedir}/src/main/webapp</workingDirectory>
                </configuration>
            </execution>
 
        </executions>
</plugin>

然后maven-resources-plugin插件将项目的前端文件打包到boot项目的classes中,具体的请参考pom.xml中的,

 将webapp/web文件夹中的文件复制到src/main/resources/static中,并打包到classes

 

<!--copy文件到指定目录下 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
                <executions>
                    <execution>
                        <id>copy-spring-boot-webapp</id>
                        <!-- here the phase you need -->
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <encoding>utf-8</encoding>
                            <outputDirectory>${basedir}/src/main/resources/static</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${basedir}/src/main/webapp/web</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

然后执行 mvn clean package

对于前后端分离的项目,本人推荐使用第一种方式进行打包,方便易懂,提供一种方式,利用shell进行打包:

1,先将前端进行打包

2,springboot 进行打包时,现将前端build好的包拷贝到static目录下,然后再执行mvn clean package命令对springboot项目打包,即完成springboot的web打jar包

转自:https://www.cnblogs.com/kevinZhu/p/9931317.html