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

 更新时间:2021年06月29日 18:43:38   作者:倔强的403  
公司一个springboot项目本来是打war包的,突然要改为打jar包,不知所措了,纠结该如何操作呢,折腾半天终于搞定了,下面把解决方案分享给大家,对springboot打jar包方式感兴趣的朋友一起看看吧

什么是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.jb51.net/article/216285.htm

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

相关文章

  • WebsocketClient断线的一些常见原因及解决办法

    WebsocketClient断线的一些常见原因及解决办法

    这篇文章主要给大家介绍了关于WebsocketClient断线的一些常见原因及解决办法,文中通过代码介绍的非常详细,对大家学习或者使用WebsocketClient断线具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • Java匿名内部类的写法示例

    Java匿名内部类的写法示例

    这篇文章主要给大家介绍了关于Java匿名内部类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java线程中卖火车票问题的深入讲解

    Java线程中卖火车票问题的深入讲解

    这篇文章主要给大家介绍了关于Java线程中卖火车票问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 分析Java非阻塞算法Lock-Free的实现

    分析Java非阻塞算法Lock-Free的实现

    非阻塞算法一般会使用CAS来协调线程的操作。虽然非阻塞算法有诸多优点,但是在实现上要比基于锁的算法更加繁琐和负责。本文将会介绍两个是用非阻塞算法实现的数据结构。
    2021-06-06
  • 解决MyBatis中为类配置别名,列名与属性名不对应的问题

    解决MyBatis中为类配置别名,列名与属性名不对应的问题

    这篇文章主要介绍了解决MyBatis中为类配置别名,列名与属性名不对应的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 详解Java递归实现树形结构的两种方式

    详解Java递归实现树形结构的两种方式

    在开发的过程中,很多业务场景需要一个树形结构的结果集进行前端展示,也可以理解为是一个无限父子结构,常见的有报表指标结构、菜单结构等,这篇文章主要介绍了Java递归实现树形结构的两种方式,需要的朋友可以参考下
    2022-10-10
  • SpringMVC使用注解配置方式

    SpringMVC使用注解配置方式

    这篇文章主要为大家介绍了SpringMVC使用注解配置方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Struts2中ognl遍历数组,list和map方法详解

    Struts2中ognl遍历数组,list和map方法详解

    这篇文章主要介绍了Struts2中ognl遍历数组,list和map方法详解,需要的朋友可以参考下。
    2017-09-09
  • Spring中allowedOriginPatterns和allowedOrigins方法有何不同详解

    Spring中allowedOriginPatterns和allowedOrigins方法有何不同详解

    这篇文章主要给大家介绍了关于Spring中allowedOriginPatterns和allowedOrigins方法有何不同,allowedOriginPatterns和allowedOrigins都是用来设置允许跨域请求的来源,需要的朋友可以参考下
    2023-10-10
  • 解决Spring使用@MapperScan问题

    解决Spring使用@MapperScan问题

    这篇文章主要介绍了解决Spring使用@MapperScan问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论