spring boot + maven 做 分离式lib下jar包和项目下resource 配置文件分离。
1:分离lib主要是因为能够快速发布项目,如果新增jar包情况下,只要将新打包的项目jar包文件上传服务器即可,由于第一次已经上传,后续就无需再上传。分离后的项目jar包很小,可以减小到KB 级别。
2:分离resource 下配置文件,如果需要调整配置文件,无需重新打包上传,只要将项目 重启即可,当然可能有人说,可以使用第三方插件来做,比如百度的disconf 和 apollo等,这些都是分布式文件配置中心,无需重启服务。这些方案都可以,也是依据项目的业务来做各自的取舍。
下面看代码:demo源码见附件,现在这个不知道啥情况,上传不了,垃圾了。
百度云下载地址:链接:https://pan.baidu.com/s/1kYTX3tMGT3YP91s-FXLiOw&shfl=sharepset
提取码:57cv
spring.application.name= /demo server.servlet.context-path=/demo server.port=8080 spring.profiles.path=D:/config
@Slf4j @SpringBootApplication @PropertySource(value = "file:${spring.profiles.path}/demo.properties") public class DemoApplication { @Value("${demo}") private String value; public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @PostConstruct public void init() { log.info("默认环境参数:{}",value ); }
maven 配置
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> <!-- 打包时排除配置文件 --> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> <exclude>**/*.yml</exclude> </excludes> </resource> </resources> <plugins> <!--<plugin>--> <!--<groupId>org.springframework.boot</groupId>--> <!--<artifactId>spring-boot-maven-plugin</artifactId>--> <!--</plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <fork>true</fork> <skip>true</skip> <executable>C:\Program Files\Java\jdk1.8.0_191\bin\javac.exe</executable> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <useUniqueVersions>false</useUniqueVersions> <mainClass>com.example.demo.DemoApplication</mainClass> </manifest> <manifestEntries> <Class-path>./</Class-path> </manifestEntries> </archive> <excludes> <exclude>*.properties</exclude> <exclude>config/**</exclude> <exclude>*.xml</exclude> <exclude>*.yml</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <!--<version>3.1.1</version>--> <executions> <execution> <id>copy</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build> 需要注意的地方:这里打包的时候会忽略所有的配置文件,在启动的时候就要指定主要的配置文件了 java –jar -Dspring.config.location=xxx/xxx/xxxx.properties xxxx.jar
<excludes> <exclude>*.properties</exclude> <exclude>config/**</exclude> <exclude>*.xml</exclude> <exclude>*.yml</exclude> </excludes>
相关推荐
**Spring Boot Maven Web 完整项目框架详解** Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是用来简化新 Spring 应用的初始搭建以及开发过程。它集成了大量的常用组件,如数据源、JPA、WebSocket、...
**前后端分离部署** 是现代Web开发的一种常见模式,前端和后端分别独立开发和部署。前端专注于用户体验和视图层,而后端专注于数据处理和业务逻辑。通过RESTful API进行通信,前端通过HTTP/HTTPS请求获取后端的数据...
《SpringBoot+Vue的企业客户管理系统:JavaEE项目与前后端分离实践》 在现代软件开发领域,SpringBoot和Vue.js的结合已经成为构建高效、可扩展的企业级应用的常见选择。本项目“SpringBoot+Vue的企业客户管理系统”...
本项目"在线云盘系统源码"是一个采用现代Web开发技术构建的前后端分离应用程序,主要技术栈为SpringBoot、Vue.js以及Hadoop分布式文件系统(HDFS)。 首先,SpringBoot是Java领域的一种轻量级框架,它简化了传统...
项目的实现还涉及到一系列辅助工具和技术,如Webpack用于模块打包,Git进行版本控制,Maven或Gradle作为构建工具,Docker进行环境隔离和部署等。这些工具的配合使用,确保了项目的高效开发和稳定运行。 总之,...
"Springboot+vue的导师双选管理系统(有报告) Javaee项目,springboot vue前后端分离项目" 这个标题表明我们正在讨论一个基于JavaEE技术栈的导师双选管理系统,该系统利用了Spring Boot框架在后端进行业务逻辑处理...
1. `pom.xml`:SpringBoot项目的Maven配置文件,定义了项目依赖。 2. `application.properties`/`application.yml`:SpringBoot的配置文件,包含数据库连接、服务器端口等设置。 3. `src/main/java`:Java源代码目录...
《SpringBoot+Vue的超市进销存管理系统:JavaEE项目的前后端分离实践》 本项目是一个基于SpringBoot和Vue.js的超市进销存管理系统,它实现了全面的库存管理、销售统计以及采购流程等功能,旨在为中小型企业提供一个...
通过Maven的parent pom.xml文件,可以统一管理所有子模块的依赖和构建过程,使得项目的构建、测试和部署更为便捷和高效。 数据库方面,MySQL是一个广泛使用的开源关系型数据库管理系统,适合处理大量数据,支持事务...
【SpringBoot+Vue前后端分离项目】是一种现代Web应用程序开发的常见架构模式,它将后端业务逻辑与前端用户界面相分离,提高了开发效率和应用性能。在这个项目中,SpringBoot作为后端框架,Vue.js作为前端框架,两者...
使用Maven或Gradle进行项目构建,通过Docker进行容器化部署,提高系统的可移植性和扩展性。 8. **测试与优化** 对系统进行全面的功能测试和性能测试,通过单元测试、集成测试确保代码质量。同时,根据性能监控...
8. **自动化构建与部署**:项目可能使用Maven或Gradle进行依赖管理和构建,利用Docker容器化技术实现一键部署,提高了开发效率。 9. **前端界面**:虽然未明确指出,但通常会采用Bootstrap、Vue.js或React等前端...
标题中的“Springboot+vue的公寓报修管理系统”是一个基于Java EE技术栈的项目,它采用了现代化的开发框架Spring Boot和前端框架Vue.js,实现了前后端分离的设计模式。这种模式在现代Web应用开发中非常常见,因为它...
4. **内嵌式Web服务器**:Spring Boot 支持内嵌Tomcat、Jetty或Undertow,这样可以避免单独部署Web服务器,提升开发效率。 5. **Actuator**:这是一个用于生产环境的工具集,提供健康检查、指标收集、审计跟踪等...
- 构建工具:Maven或Gradle管理SpringBoot项目依赖,Webpack或Vue CLI用于Vue项目的构建。 8. **部署与运行**: - 使用Docker容器化技术部署应用,简化环境配置,提高可移植性。 - 服务器环境如Tomcat或Jetty...
标题中的“Springboot+vue的旅游信息推荐系统设计与实现”揭示了这是一个基于JavaEE的Web应用程序,利用Spring Boot框架后端处理逻辑,Vue.js前端框架进行用户界面交互,为用户提供旅游信息推荐服务。这样的系统通常...
《基于SpringBoot、AdminLTE和Maven的物流公司管理系统详解》 在现代信息技术的推动下,物流公司的运营管理和信息处理越来越依赖于高效的系统支持。本文将深入探讨一个利用SpringBoot、AdminLTE和Maven构建的物流...
4. **内嵌式Servlet容器**:SpringBoot可以内嵌Tomcat或Jetty,避免了部署WAR文件的复杂步骤。 【前后端分离实践】 前后端分离是现代Web开发的重要模式,它将应用分为两个主要部分:前端(客户端)负责用户交互,...
3. **内嵌式 Web 服务器**:SpringBoot 支持内嵌式 Web 服务器如 Tomcat、Jetty 等,使得应用程序可以直接运行为一个独立的 jar 包,无需额外部署到外部服务器。 4. **Spring Boot Starter Parent**:在项目中,`...