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依赖

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-core</artifactId>
</dependency>

是不是scope为test

 

另一个注意事项是:要将

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
</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就可以在虚拟机上启动了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值