springboot项目通过gradle运用capsule插件打可执行jar包

因为项目之前一直是打war包,用tomcat执行的。

有一天领导来说:有个场景不支持springboot2.0,你打成一个jar吧。

于是我先注释了现有build.gradle里的

 
//compile 'org.springframework.boot:spring-boot-starter-tomcat:2.0.5.RELEASE'

并添加了一个task来打这个jar
//这个必须要放在配置文件头部位置
buildscript {
    repositories {
        mavenLocal()
        maven {url "https://plugins.gradle.org/m2/"}
        mavenCentral()
    }
    dependencies {
        classpath "us.kirchmeier:gradle-capsule-plugin:1.0.2"                     //第一步:加载插件依赖
    }
}
plugins {                                                                         //第二步:引用插件
    id "us.kirchmeier.capsule" version "1.0.2"
}
/** 多个任务就需要用命令一个一个打包,gradle后面跟着每个任务的名称 */
task cmskeyword(type: FatCapsule) {                                              //第三步:定义任务,然后在命令行执行gradle ServerMonitor打包
    applicationClass 'com.start.Start'
    baseName 'cmskeyword'
}


执行完了后,在libs下有2个jar包

进入到这个目录下,执行 java -jar cmskeyword-capsule.jar 结果如下:说明打包成功

 中间遇到有一些坑,还是对

 

这个提示让我百思不得其解。

一开始我思考是不是由于之前打war包,都是通过tomcat8运行的,没改好配置,折腾半天也不是,我已经成功改回了springboot启动类启动,也可以正常访问。

后来通过google找到一个类似的报错,那个是异常字符<"> at index0:"JDK的问题,外国友人最后的处理方式是删了环境变量里的" 

我就把我本地的tomcat的环境变量删了,重启下就好了。

一般来讲,tomcat不需要配环境变量,但是我本地为什么有,依旧是个谜。我也忘了。。

原文地址:https://www.cnblogs.com/justtodo/p/11326901.html