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 相关文章推荐
Spring Boot 启动、停止、重启、状态脚本
Jun 26 Java/Android
Java Kafka 消费积压监控的示例代码
Jul 01 Java/Android
Java基础-封装和继承
Jul 02 Java/Android
spring boot中nativeQuery的用法
Jul 26 Java/Android
springboot+zookeeper实现分布式锁
Mar 21 Java/Android
Java字符串逆序方法详情
Mar 21 Java/Android
Android自定义双向滑动控件
Apr 19 Java/Android
Java设计模式之代理模式
Apr 22 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
java实现自定义时钟并实现走时功能
Jun 21 Java/Android
tree shaking对打包体积优化及作用
Jul 07 Java/Android
Java获取字符串编码格式实现思路
Sep 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
浅析PHP Socket技术
2013/08/02 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
JavaScript如何操作css
2020/10/24 Javascript
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python 闭包的使用方法
2017/09/07 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
python IDLE添加行号显示教程
2020/04/25 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
numpy实现RNN原理实现
2021/03/02 Python
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
个人自我评价范文
2014/02/05 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
节约用水广告语60条
2019/11/14 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
Python字典和列表性能之间的比较
2021/06/07 Python