使用spring boot 创建了一个简单的工程,jar依赖使用gradle解决,在eclipse中能够正常运行,然后就用gradle build 打成jar包,发现只有几十k,java -jar xxx.jar 也不能运行。出现这个问题是因为依赖jar包没有被打进去。
使用如下脚本能够将依赖jar包打进去
buildscript {
ext {
springBootVersion = '1.4.0.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
使用buildscript 添加spring-boot-gradle-plugin插件,通过apply plugin : 'spring-boot'引入spring-boot打包插件,然后build.gradle 右键 gradle build 在build文件中就生成打包好的文件。
打包后的jar包中目录如下:
其中 BOOT-INF中包含一个lib目录,一个classes目录
lib目录中就是工程包中依赖的外包jar包,classes文件夹中就是自己的class文件。
网上很多其他插件,试了好几个,都不太好使,打出来的jar包是将依赖jar包的class给打到自己的jar包中了,没有这种清晰明了,而且用java -jar 运行时会报缺少类。
当使用buildship插件时,一定要注意,按照上面的配置打的的jar包还是不行,这样因为,执行的task不对,不在再执行jar任务了,需要执行bootRepackage任务进行打包。