springboot项目以jar包运行的操作方法


Posted in Java/Android onJune 30, 2021

  公司的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中:

springboot项目以jar包运行的操作方法

  然后在pom文件中引入jar包:

springboot项目以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/taiyonghai/p/9561334.html

到此这篇关于springboot项目以jar包运行的操作方法的文章就介绍到这了,更多相关springboot jar包内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
Java方法重载和方法重写的区别到底在哪?
Jun 11 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
详解Java七大阻塞队列之SynchronousQueue
Sep 04 Java/Android
MyBatis-Plus 批量插入数据的操作方法
Sep 25 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 Java/Android
Java9新特性之Module模块化编程示例演绎
Mar 16 Java/Android
Java 深入探究讲解简单工厂模式
Apr 07 Java/Android
SpringBoot 集成短信和邮件 以阿里云短信服务为例
Apr 22 Java/Android
Spring Data JPA框架的核心概念和Repository接口
Apr 28 Java/Android
SpringBoot全局异常处理方案分享
May 25 Java/Android
详解Spring Bean的配置方式与实例化
Jun 10 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 #Java/Android
如何给HttpServletRequest增加消息头
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 #Java/Android
Java基础之详解HashSet的使用方法
Java实现多文件上传功能
Jun 30 #Java/Android
Java基础之线程锁相关知识总结
Jun 30 #Java/Android
详解Spring事件发布与监听机制
You might like
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
JS delegate与live浅析
2013/12/21 Javascript
js点击选择文本的方法
2015/02/09 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
layui实现三级联动效果
2019/07/26 Javascript
python类定义的讲解
2013/11/01 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
Java基础面试题
2012/11/02 面试题
大四学年自我鉴定
2013/11/13 职场文书
历史教育专业个人求职信
2013/12/13 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
运动会通讯稿300字
2014/02/02 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
教师求职自荐信
2015/03/26 职场文书
2016七夕情人节寄语
2015/12/04 职场文书