软件编程
位置:首页>> 软件编程>> java编程>> springboot项目以jar包运行的操作方法

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

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

标签: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中:

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com