首页 > 文章列表 > springboot项目怎么以jar包运行

springboot项目怎么以jar包运行

springboot jar
470 2023-05-17

springboot项目怎么以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命令就可以读到配置文件啦。