springboot项目以jar包运行的操作方法
作者:倔强的403 时间:2023-11-10 07:47:43
什么是Spring Boot
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
公司的springboot项目本来是打war包的,突然要求改成jar包,一路上碰到一些坑,在此记录一下。
一、pom文件配置
1、打包方式改成jar
<packaging>jar</packaging>
2、配置可执行jar包的maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 如果有依赖外部jar,则必须加上此配置includeSystemScope-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
3、引入外部jar依赖(可选)
如果项目中引入了外部jar,可在项目根目录创建lib文件夹,将jar包放入lib中:
然后在pom文件中引入jar包:
PS:如果项目以war的形式打包,并且引入了外部jar,则maven插件的配置如下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
二、打包运行
1、打包
打包命令,很简单:
mvn install
2、运行
在生产和测试环境,一般都需要保持进程一直在后台运行,断开终端也不中断,则需要执行以下命令:
nohup java -jar test.jar &>>log.out &
三、配置文件优先级
spring boot会按以下顺序去寻找配置文件:
1、“当前目录”的/config文件夹下
2、“当前目录”下
3、classpath的/config文件夹下
4、classpath下
注意事项:
当前目录指的是执行java命令所在目录,如果是通过shell脚本执行的java命令,则当前目录指shell脚本所在目录,如果在shell脚本中cd到某一目录再执行的java命令,则当前目录就指cd后的目录。
不同优先级的配置文件都能被读到,但相同的配置项,优先级高的配置文件的配置会覆盖优先级低的配置文件的配置。
jar包内的配置文件不方便修改,生产上我们一般会将配置文件放在jar包外。
生产上可以直接将配置文件放在jar包所在目录同级的config目录,然后在脚本中cd到jar包所在目录,执行java命令就可以读到配置文件啦。
来源:https://www.cnblogs.com/xiaohang123/p/14945194.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C++ 二维(多维)vector添加一个空项问题
Springboot实现阿里云通信短信服务有关短信验证码的发送功能
![](https://img.aspxhome.com/file/2023/9/94229_0s.png)
解决Maven项目中 Invalid bound statement 无效的绑定问题
![](https://img.aspxhome.com/file/2023/3/99883_0s.png)
Android ActionBarActivity设置全屏无标题的方法总结
Java SpringBoot 使用拦截器作为权限控制的实现方法
C#实现Zip压缩目录中所有文件的方法
java性能优化之编译器版本与平台对应关系
java新人基础入门之递归调用
![](https://img.aspxhome.com/file/2023/1/90981_0s.png)
Java中输入与输出的方法总结
![](https://img.aspxhome.com/file/2023/4/63854_0s.png)
SpringAop实现原理及代理模式详解
Spring Security认证提供程序示例详解
Java多线程中关于join方法的使用实例解析
springmvc实现json交互-requestBody和responseBody
![](https://img.aspxhome.com/file/2023/0/83440_0s.png)
Springboot WebFlux集成Spring Security实现JWT认证的示例
linphone-sdk-android版本号生成解析
深入浅析jni中的java接口使用
![](https://img.aspxhome.com/file/2023/8/63168_0s.png)
C#委托初级使用的实例代码
Spring Security中用JWT退出登录时遇到的坑
![](https://img.aspxhome.com/file/2023/1/70921_0s.jpg)