6.打包和部署应用 6.1创建可执行的JAR的Spring Boot

6.1创建可执行的JAR的Spring Boot

   Spring Boot很好的是它打成的包是一个完整的应用,该应用中包含了依赖的包、资源等,让我们有能力去执行JAR。JAR文件创建之后,我们简单地使用java -jar <name>.jar的命令不可以启动应用。

   这一章节,我们将继续前面的章节,让我们学习如何去创建Spring Boot Uber JAR.

6.1.1代码实现

  1. 让我们在项目的根目录下执行命令:gradle clean build
  2. 之后就会创建一个包,然后执行命令:java -jar build/libs/bookpub-0.0.1-SNAPSHOT.jar

需要注意的是,由于作者在测试类中好多测试没有通过,可能是版本不对。所以没有解决,在打包时,如果直接用gradle clean build 的话,会进行测试评估。所以笔者建议使用 gradle build -x test ,也就是将不进行测试,这样的话就可以了。

  1. 启动应用,你将在控制台看到如下:

6.1.2代码说明

   如你所看到的,我们有能力直接去执行JAR包。所有的这些都已经编码好了,并且提供我们Spring Boot Gradle插件有部分。额外的插件添加到任务中,允许我们与Spring Boot应用一起打包,运行它和创建JAR/TAR/WAR文件等。例如,bootRun是由Spring Boot Gradle插件提供。通过执行./gradle tasks 我们可以看到完整的有效的Gradle任务。我们运行命令得到如下的结果:

  

   上面的输出信息并不是完整的,我们执行了不相关的任务组,例如IDE/Documentation等,但是你将会在控制台上看到它们。在任务列表中,我们将会看到bootRun/bootRepackaget等其它任务。这些任务是由Spring Boot Gradle插件添加的,为了生成合适的Spring Boot应用或启动它。你可以使用./gradle tasks –all看到实际任务的依赖,这不仅仅是有效的任务,也是内部的任务和任务之间的依赖。例如,当我们运行创建任务,下面的依赖任务将会被执行:

  你可以看到创建任务将会调用bootRepackage去创建Uber JAR的文件。

这个插件也提供给我们大量的配置操作,一面我人提两个:

第一个配置是允许我们配置JAR文件的classifier来创建一个不变的JAR包含仅仅是应用代码和分开的执行JAR。也就是,说,在打包之后给包名加上自己想要的信息。如:book-0.0.1-SNAPSHOT-exe.jar名,可以这样配置:

bootBoot {
classifier = 'exec'
}

另外一个配置是允许我们指定哪个依赖JRAs要求卸载。由于一些原因,有些包不能作为嵌套的JARs的包。当你需要一些事情在System Classloader中是有效时,如通过开始系统配置如下来使SecurityManager有效:

 springBoot {
requiresUnpack = ['org.group.name:some-artifact']
}

在这个例子中,包含了来自org.group的some-artifact的JAR将会嵌入到主要的JAR中与Spring Boot 编码和应用编码一起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值