springboot maven 依赖包 配置文件 分离打包

springboot项目打包成jar可以直接运行,但是将项目copy到生产环境时,文件实在是有点大,不方便部署。如果遇到网络不好的情况下,可能只更新了一个class文件,但却要讲整个几十兆的jarcopy到生产环境,确实不划算。所以如下可以将依赖包,配置文件,运行文件分离打包。以后多半是更新运行文件,分离后可能也就几百k

此方法只需要修改pom文件,需要增加三个plug。配置文件如下:

1. jar依赖包分离

        在打包时将依赖包copy到指定目录

2. 配置文件分离

        在打包时将指定的配置文件copy到指定目录        

3. 运行文件分离

        剔除依赖包和配置文件,指定启动类,将依赖包和配置文件的路径写入到manifest.inf文件中

打包完成后,将包放入到对应的位置,不要报找不到配置文件和依赖包即可。启动方式不变

打包后的目录:

  • target
    • lib
    • config
    • xxx.jar
<!--依赖包:打包时将第三方依赖包拷贝 到指定目录-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <!--输出目录的lib 目录是依赖jar包的输出目录-->
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- 运行文件:打包时将运行只打包源码,不打包依赖文件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <!-- 项目运行文件的输出目录 -->
                    <outputDirectory>${project.build.directory}/</outputDirectory>
                    <archive>
                        <manifest>
                            <!--MANIFEST.MF 中 Class-Path 加入前缀-->
                            <classpathPrefix>lib/</classpathPrefix>
                            <addClasspath>true</addClasspath>
                            <!--jar包不包含唯一版本标识-->
                            <useUniqueVersions>false</useUniqueVersions>
                            <mainClass>com.lst.user.auth.ServiceAuthorityApplication</mainClass>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>./config/</Class-Path>
                        </manifestEntries>
                    </archive>
                    <!--不打包资源文件-->
                    <!-- 打包后的jar包中不包括配置文件 -->
                    <!-- 通常是指classpath下目录下的文件,这样可以避免编写时的找不到相应文件 -->
                    <excludes>
                        <exclude>*.xml</exclude>
                        <exclude>*.properties</exclude>
                        <exclude>*.yml</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!-- 配置文件:将需要复制的文件复制到指定路径(例:将配置文件提取到指定路径) -->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <!-- 复制配置文件 -->
                    <execution>
                        <id>copy-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <!-- 复制哪些目录下的哪些文件到指定目录 -->
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                    <!-- 不配置excludes\includes默认就是复制指定目录的所有文件 -->
                                    <includes>
                                        <include>*.properties</include>
                                        <include>*.yml</include>
                                        <exclude>*.xml</exclude>
                                        <include>*/*.properties</include>
                                        <include>*/*.yml</include>
                                    </includes>
                                </resource>
                            </resources>
                            <outputDirectory>${project.build.directory}/config</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot可以很方便地集成和打包H5 Vue项目。下面将简要介绍如何实现该过程。 首先,我们需要新建一个Spring Boot项目。可以使用Spring Initializr来快速生成项目骨架。在生成项目的过程中,我们需要选择Web和Vue.js作为项目的依赖。 接下来,我们需要在项目中添加Vue相关的依赖。在pom.xml文件中,加入如下代码段: ```xml <dependency> <groupId>org.webjars</groupId> <artifactId>vue</artifactId> <version>2.6.14</version> </dependency> ``` 然后,我们需要在Spring Boot项目的资源文件夹中(例如src/main/resources/static)创建Vue项目的目录结构。将Vue项目的源代码和静态资源文件拷贝到该目录下。 接着,我们需要配置Spring Boot的路由规则,以使Spring Boot能够正确地响应Vue的路由请求。在Spring Boot项目的主类中,添加如下代码段: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/{path:^(?!api).*$}/**") .setViewName("forward:/index.html"); } } ``` 最后,我们需要使用Maven或Gradle进行打包。运行打包命令后,将生成一个可执行的JAR/WAR文件。 通过以上步骤,我们就完成了Spring Boot集成和打包H5 Vue项目的过程。我们可以使用命令行或者将JAR/WAR文件部署到服务器上,来运行和访问集成后的项目。 ### 回答2: Spring Boot是一种用于构建独立的、可执行的Spring应用程序的框架,它简化了Spring应用程序的开发和部署过程。Vue.js是一个流行的JavaScript框架,用于构建用户界面。在将H5页面集成到Spring Boot中时,可以使用Vue.js来构建前端界面。 首先,我们需要在Spring Boot项目中集成Vue.js。可以通过在项目中添加相应的依赖和配置来实现。接下来,我们可以使用Vue CLI来创建一个新的Vue项目,并将其与Spring Boot项目进行关联。这样,我们就可以在Spring Boot项目的前端部分使用Vue.js来构建H5页面。 在Vue项目中,我们可以使用Vue Router来进行页面路由管理。通过定义不同的路由,我们可以实现在不同的URL路径下展示不同的页面内容。同时,我们还可以使用Vue的组件化开发模式来构建复用性高的UI组件,以提高开发效率。 一旦我们在Vue中完成了H5页面的开发,我们可以使用Vue CLI提供的打包命令将Vue项目打包成静态文件。这些静态文件可以直接部署到Spring Boot项目的静态资源目录中。 最后,我们只需启动Spring Boot应用程序,Spring Boot会自动将前端的H5页面服务起来。通过访问相应的URL路径,我们就可以在浏览器中查看和操作我们构建的H5页面了。 综上所述,通过将Vue.js与Spring Boot集成,我们可以方便地构建和打包H5页面,并将其部署在Spring Boot应用程序中。这种集成方式既保留了Spring Boot提供的后端开发能力,又使用了Vue.js强大的前端开发能力,可以提高开发效率并实现更好的用户体验。 ### 回答3: Spring Boot 是一个用于创建基于 Java 的可独立运行的、生产级别的 Spring 应用程序的框架。它提供了快速开发和开箱即用的特性,可以帮助开发者更高效地构建应用程序。 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它可以将页面拆分成 一个个组件,并通过组合这些组件构建整个应用程序的用户界面。Vue.js 具有易于学习、灵活、高效的特点,非常适合构建现代的单页面应用程序。 要将 Spring Boot 和 Vue.js 集成并打包成 H5 应用程序,可以按照以下步骤进行: 1. 创建 Spring Boot 项目:使用 Spring Initializr 创建一个新的 Spring Boot 项目,含 Web 和其他所需的依赖项。 2. 配置前后端分离:在项目中创建一个用于存放前端静态资源的文件夹,比如 "src/main/resources/static",该文件夹将用于存放 Vue.js 相关文件。 3. 创建 Vue.js 项目:在上述文件夹中创建一个新的 Vue.js 项目,可以使用 Vue CLI 来创建。 4. 开发前端页面:在 Vue.js 项目中开发前端页面,可以使用 Vue 组件来构建各个部分。 5. 配置后端接口:在 Spring Boot 项目中创建后端接口,用于提供数据给前端页面使用。可以使用 Spring MVC 或者 Spring Data REST 来构建接口。 6. 前后端联调:将前端页面绑定到后端接口,测试数据的流通是否正常。 7. 打包和部署:使用 Maven 或 Gradle 进行项目打包,生成可运行的 Jar 文件。部署到服务器上运行。 通过以上步骤,就可以将 Spring Boot 和 Vue.js 集成,并打包成 H5 应用程序。在本地开发过程中,可以使用前后端分离的方式进行开发和调试,提高开发效率。最后,通过打包和部署,将应用程序发布到服务器上,供用户访问和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值