深入实践Spring Boot1.4.2 将应用打包发布

简介:

1.4.2 将应用打包发布

上面操作演示了在IDEA环境中如何运行一个应用。如果我们想把应用发布出去,需要怎么做呢?可以将代码清单1-1中的Maven配置增加一个发布插件来实现。如代码清单1-4所示,增加了一个打包插件:spring-boot-maven-plugin,并增加了一行打包的配置:<packaging>jar</packaging>,这行配置指定将应用工程打包成jar文件。

代码清单1-4 包含打包插件的Maven配置

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

            http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

 

    <groupId>springboot.example</groupId>

    <artifactId>spring-boot-hello</artifactId>

    <version>1.0-SNAPSHOT</version>

    <packaging>jar</packaging>

 

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.3.2.RELEASE</version>

    </parent>

 

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

    </dependencies>

   

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <executions>

                    <execution>

                        <goals>

                            <goal>repackage</goal>

                        </goals>

                    </execution>

                </executions>

            </plugin>

        </plugins>

    </build>

</project>

这样就可以在IDEA中增加一个打包的配置,打开Run/Debug Conf?igurations对话框,选择增加配置一个Maven打包项目,在工作目录中选择工程所在根目录,在命令行中输入package,并将配置保存为mvn,如图1-17所示。

运行mvn打包项目,就可以将实例工程打包,打包的文件将输出在工程的target目录中。

如果已经按照1.1.3节的说明安装了Maven,也可以直接使用Maven的命令打包。打开一个命令行窗口,将路径切换到工程根目录中,直接在命令行输入mvn package,同样也能将项目打包成jar文件。执行结果如下:

 

图1-17 Maven打包配置

......

[INFO] --- maven-jar-plugin:2.5:jar (default-jar) @ spring-boot-hello ---

[INFO] Building jar: E:\ideworkspace\spring-boot-hello\target\spring-boot-hello-

1.0-SNAPSHOT.jar

[INFO]

[INFO] --- spring-boot-maven-plugin:1.3.2.RELEASE:repackage (default) @ spring-b

oot-hello ---

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 21.450 s

[INFO] Finished at: 2016-05-08T16:54:44+08:00

[INFO] Final Memory: 23M/118M

[INFO] ------------------------------------------------------------------------

打包成功后,在工程的target目录中将会生成jar文件spring-boot-hello-1.0-SNAPSHOT.jar。在命令行窗口中切换到target目录中,运行如下指令,就能启动应用。

java -jar spring-boot-hello-1.0-SNAPSHOT.jar

如果希望按照传统的做法,将工程发布成war文件,应当将代码清单1-4的Maven配置<packaging>jar</packaging>改成<packaging>war</packaging>,这样就可以打包成war文件。打包完成后将war文件放置在Tomcat的webapp路径中,启动Tomcat就能自动运行程序。

这里需要注意的是,如果自主使用Tomcat运行应用,在安装JDK时必须配置JAVA_HOME环境变量,同时JDK要求1.8以上的版本,Tomcat必须是8.0以上的版本。

我更加喜欢打包成jar,然后使用Spring Boot的嵌入插件Tomcat运行应用。本书所有实例都可以打包成jar直接运行。即使对于一个包含很多页面、图片、脚本等资源的复杂应用系统,这种方法也是可行的,并且打包成jar,更方便项目发布在Docker上运行,这些将在后面的章节中详细介绍。

相关文章
|
1月前
|
XML Java 应用服务中间件
SpringBoot-打包&部署
SpringBoot 项目支持两种打包方式:WAR 包和 JAR 包。JAR 包内置 Tomcat,可直接运行;WAR 包需部署在外部 Tomcat 上。JAR 包通过 `mvn clean package` 打包并用 `java -jar` 运行,支持后台运行和 JVM 参数配置。WAR 包需修改 pom.xml 为 war 类型,移除嵌入式 Tomcat 依赖,添加 servlet-api,并继承 `SpringBootServletInitializer`。配置文件可通过外部 application.yml 覆盖,默认优先级高于 JAR 内部配置。
88 17
SpringBoot-打包&部署
|
26天前
|
人工智能 Java API
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
|
20天前
|
人工智能 Java API
Spring AI与DeepSeek实战一:快速打造智能对话应用
在 AI 技术蓬勃发展的今天,国产大模型DeepSeek凭借其低成本高性能的特点,成为企业智能化转型的热门选择。而Spring AI作为 Java 生态的 AI 集成框架,通过统一API、简化配置等特性,让开发者无需深入底层即可快速调用各类 AI 服务。本文将手把手教你通过spring-ai集成DeepSeek接口实现普通对话与流式对话功能,助力你的Java应用轻松接入 AI 能力!虽然通过Spring AI能够快速完成DeepSeek大模型与。
342 11
|
25天前
|
存储 人工智能 开发框架
Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手
第二届开放原子大赛 Spring AI Alibaba 应用框架挑战赛决赛于 2 月 23 日在北京圆满落幕。
|
21天前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
1月前
|
Java 应用服务中间件 Maven
SpringBoot项目打包成war包
通过上述步骤,我们成功地将一个Spring Boot应用打包成WAR文件,并部署到外部的Tomcat服务器中。这种方式适用于需要与传统Servlet容器集成的场景。
47 8
|
27天前
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
90 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
23天前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
2月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
146 17
|
2月前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
59 5

热门文章

最新文章