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实战之用Swing实现通讯录管理系统
Jun 13 Java/Android
简单总结SpringMVC拦截器的使用方法
Jun 28 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
Jul 09 Java/Android
Java8中接口的新特性使用指南
Nov 01 Java/Android
Spring this调用当前类方法无法拦截的示例代码
Mar 20 Java/Android
SpringBoot2零基础到精通之数据与页面响应
Mar 22 Java/Android
Netty分布式客户端接入流程初始化源码分析
Mar 25 Java/Android
Java 深入探究讲解简单工厂模式
Apr 07 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
Java完整实现记事本代码
Jun 16 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反弹shell实现代码
2009/04/22 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
安全教育心得体会
2013/12/29 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
优秀食品类广告词
2014/03/19 职场文书
交通事故协议书
2014/04/15 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
婚礼家长致辞
2015/07/27 职场文书
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA
Java设计模式中的命令模式
2022/04/28 Java/Android