boot spring 怎么执行hql_Spring Boot 怎么打一个可执行 Jar 包?

本文介绍了如何使用SpringBoot框架将Java应用程序打包成可执行的Jar文件。通过添加Spring Boot Maven插件并配置repackage目标,可以创建包含内置Servlet容器和所有依赖库的Jar包。运行Jar包的命令为`java -jar xxx.jar`,这种方式简化了传统Java应用的部署流程。
摘要由CSDN通过智能技术生成

0073935100ae21aa1b0cf5731994faed.png

传统的 Java 应用程序都需要打一个 war 包,并到到 Tomcat webapps 目录下运行。

Java 支持打 Jar 包,但没有提供一个标准的方式在一个 Jar 包内再加载嵌入别的 Jar 包,一般需要扩展类加载器来实现,即使这样,也做不到打成一个包运行,因为没有 Servlet 容器。

有了 Spring Boot 框架之后,这一切都变得简单,我们可以很方便的将应用程序打成一个可执行 Jar 包。

怎么打成 Jar 包运行?

1、添加插件

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
            <configuration>
                <classifier>exec-${env}</classifier>
            </configuration>
        </execution>
    </executions>
</plugin>

这里是添加了一个 Maven 打包插件,通过配置可以定制打成的 Jar 包的格式,如:javastack-exec-dev.jar。

如果你是用的 spring-boot-starter-parent 方式来使用 Spring Boot,那就不用写 executions 选项,因为它包括了 executions repackage 构建配置。

这个插件的更多用法参考:

https:// docs.spring.io/spring-b oot/docs/2.1.3.RELEASE/maven-plugin/usage.html

2、打成 Jar 包

使用 mvn package 命令或者 IDE 中的 Maven 插件都可以打包。Maven 不熟悉的请关注Java技术栈阅读。

打完包之后,在项目 target 目录就可以看到打成的 Jar 包。

这个 Jar 包除了包括编译完的 class 文件,还内置了 Servlet 容器,并集成了所有需要依赖的其他 Jar 包库,我们来看下这个 Jar 包的目录结构。

├─BOOT-INF
│  ├─classes
│  │  └─cn
│  │      └─javastack
│  │          └─demo
│  └─lib
├─META-INF
│  └─maven
│      └─cn.javastack
│          └─demo
└─org
    └─springframework
        └─boot
            └─loader
                ├─archive
                ├─data
                ├─jar
                └─util

在文件 META-INFMANIFEST.MF 中找到应用程序启动类:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: javastack
Start-Class: cn.javastack.demo.Application
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.1.3.RELEASE
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_151
Main-Class: org.springframework.boot.loader.JarLauncher

3、运行 Jar 包

运行命令格式:

$ java -jar xxx.jar

这个命令的更多用法请看这篇文章:Java Jar包的压缩、解压使用指南。

运行命令演示:

$ java -jar javastack-exec-dev.jar
.   ____          _            __ _ _
 / / ___'_ __ _ _(_)_ __  __ _    
( ( )___ | '_ | '_| | '_ / _` |    
 /  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |___, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.1.3.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)

好了,跑起来了。

好了,今天的分享就到这里,更多 Spring Boot 文章正在撰写中,关注Java技术栈获取第一时间推送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值