spring boot打包成jar并在windows或linux虚拟机上运行

一个spring boot项目,如果能够打包成jar文件,就可以脱离IDE,直接通过java -jar 命令启动,很方便。

maven项目

第一种方式:

 Intellij idea下启动

先修改pom的packaging为jar

打开terminal窗口 cd进入本项目

1. 执行mvn clean package

可以在target目录下生成springbootweb01-0.0.1-SNAPSHOT.jar文件

2. 获取依赖包

执行mvn clean package dependency:copy-dependencies

可以在target目录下生成dependency文件夹,里面为项目的依赖包

 3. 在target下新建mylib文件夹

将打的包和依赖包都copy到mylib文件夹下

执行下面语句部署

java-Djava.ext.dirs=mylib -jar mylib/springbootweb01-0.0.1-SNAPSHOT.jar

 

由于target文件会经常由于项目执行变动,比如执行了mvn clean操作,可以将mylib文件夹copy到外部文件夹中,比如放到桌面上的mylib文件夹上

cmd进入cd d:\Users\Desktop

执行

java-Djava.ext.dirs=mylib -jar mylib/springbootweb01-0.0.1-SNAPSHOT.jar

就可以脱离IDE进行项目启动了

 

也可以写一个start.cmd文件,

在mylib文件夹下新建bin文件夹,建一个start.cmd,

java-Djava.ext.dirs=mylib -jard:/Users/Desktop/mylib/springbootweb01-0.0.1-SNAPSHOT.jar

注意路径使用的是“/”,而不是windows中的“\”

 

使用-Djava.ext.dirs使用的是Ext Class Loader

而使用-cp 使用的是App Class Loader,其实应该使用App ClassLoader,所以这种方式只是一种取巧的方式。

第二种方式:

使用maven的一个自动生成脚本插件

appassembler-maven-plugin

配置参考:使用appassembler-maven-plugin插件生成启动脚本

使用appassembler-maven-plugin插件生成启动脚本

在intellijidea terminal下执行

mvn cleanpackage appassembler:assemble

 

如果报org.springframework.core.env.EnvironmentCapable错误,那么检查一下pom依赖


	org.springframework
	spring-core

是不是scope为test

 

另一个注意事项是:要将


	org.springframework.boot
	spring-boot-maven-plugin

注释掉,原因参考: https://my.oschina.net/tridays/blog/858378

当使用appassembler-maven-plugin时,不要使用这个插件。

进入到target\springbootweb01\binspringbootweb01.bat就可以启动了

 

终止的方式有两种:在intellijterminal中 ctrl+c

或netstat–nao|findstr 8080 的PID,强制杀掉

 

如果想更改端口,那么直接在target\springbootweb01\conf\application.properties中进行修改,之后重启就可以了,不需要重新打包了。

 

如果想部署到生产环境下,只要将target\springbootweb01文件夹部署到服务器上就可以了

相对比,第一种方式是自己动手,而第二种方式更完善。

Gradle

在gradle下,先添加依赖,指定好springBootVersion版本

dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}

之后terminal下使用gradle build,就会在build文件夹下创建libs文件夹及resources等文件夹,之后直接cd进入libs下执行java –jarcore-0.0.1-SNAPSHOT.jar

以上是windows下由maven构建以及gradle构建的spring boot项目的打包及发布方法

在linux虚拟机下直接将jar包 transfer to /root目录下 执行java -jar xxx.jar就可以在虚拟机上启动了

你可能感兴趣的:(spring,boot)