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中常用解析工具jackson及fastjson的使用
Jun 28 Java/Android
解决Swagger2返回map复杂结构不能解析的问题
Jul 02 Java/Android
Spring实现内置监听器
Jul 09 Java/Android
Java移除无效括号的方法实现
Aug 07 Java/Android
RestTemplate如何通过HTTP Basic Auth认证示例说明
Mar 17 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
Java 异步任务计算FutureTask
Apr 28 Java/Android
Android开发EditText禁止输入监听及InputFilter字符过滤
Jun 10 Java/Android
Java实现HTML转为Word的示例代码
Jun 28 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
Jul 23 Java/Android
java实现web实时消息推送的七种方案
Jul 23 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
推荐25款php中非常有用的类库
2014/09/29 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
Yii核心验证器api详解
2016/11/23 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
毕业典礼演讲稿
2014/05/13 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
研讨会通知
2015/04/27 职场文书
公司催款律师函
2015/05/27 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技