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

作者:倔强的403 时间:2023-11-10 07:47:43 

什么是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中:

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/xiaohang123/p/14945194.html

标签:springboot,jar,包
0
投稿

猜你喜欢

  • C++ 二维(多维)vector添加一个空项问题

    2022-10-10 14:44:23
  • Springboot实现阿里云通信短信服务有关短信验证码的发送功能

    2022-07-24 15:36:53
  • 解决Maven项目中 Invalid bound statement 无效的绑定问题

    2021-08-13 10:30:41
  • Android ActionBarActivity设置全屏无标题的方法总结

    2023-01-23 04:49:37
  • Java SpringBoot 使用拦截器作为权限控制的实现方法

    2023-04-18 01:41:58
  • C#实现Zip压缩目录中所有文件的方法

    2021-05-29 15:41:47
  • java性能优化之编译器版本与平台对应关系

    2023-09-04 18:31:48
  • java新人基础入门之递归调用

    2023-11-10 01:15:16
  • Java中输入与输出的方法总结

    2021-06-07 22:02:15
  • SpringAop实现原理及代理模式详解

    2023-04-23 21:28:41
  • Spring Security认证提供程序示例详解

    2022-11-07 18:06:40
  • Java多线程中关于join方法的使用实例解析

    2023-08-22 21:47:29
  • springmvc实现json交互-requestBody和responseBody

    2023-02-26 17:10:45
  • Springboot WebFlux集成Spring Security实现JWT认证的示例

    2021-06-02 03:24:50
  • linphone-sdk-android版本号生成解析

    2022-10-18 14:43:18
  • 深入浅析jni中的java接口使用

    2023-07-22 19:54:23
  • C#委托初级使用的实例代码

    2022-12-01 09:59:44
  • Spring Security中用JWT退出登录时遇到的坑

    2022-05-19 10:30:28
  • C#语法糖(Csharp Syntactic sugar)大汇总

    2022-12-04 12:55:23
  • java实现京东秒杀功能分享 京东秒杀软件

    2021-09-10 23:27:36
  • asp之家 软件编程 m.aspxhome.com