Spring boot如何打war包发布到tomcat

前言:

平时在使用java做项目开发时,首先想到利用框架来提升开发效率,和提高可维护性。选择spring可以使用ssm(spring框架,springMVC,mybatis),而且企业中应用也比较广泛,然而还是发现,在框架中有很多配置,而且看起来相当繁琐,并且在这些配置中,大部分都属于默认配置,习惯配置。因此spring boot就此诞生,它的主要目的就是实现“0”配置,此处的“0”不是代表没有配置,而是代表极少的配置。并且spring boot还内置了tomcat。

Tomcat是一种web容器,类似于apache、nginx等,提供web服务的服务器软件。它属于轻量级,方便启动和配置的web服务器,非常适合用来学习之用。不过有时候也可以作为生产服务器来部署,通过搭建集群提高可用性和高负载性。上面说到spring boot内置了tomcat,就意味着spring boot项目可以自己运行(编写入口类,打为jar包,使用java -jar 包名.jar来运行)但是在有的情况下我们既需要发布软件的灵活性,又想使用spring boot为我们带来的便利,因此我们就需要将spring boot项目当做普通项目一样打成war包发布到tomcat,这正是本章编写的目的。

spring boot项目打war包发布的步骤(此处以maven做讲解):

1、构建spring应用(继承SpringBootServletInitializer并重写configure方法)

将入口文件做修改,代码如下:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication

public class WebApplication extends SpringBootServletInitializer {

public static void main(String[] args) {

SpringApplication.run(WebApplication.class, args);

}

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(WebApplication.class);

}

}

2、配置pom.xml文件

A、先将打包类型做设置:

<packaging>jar</packaging>

改为:

<packaging>war</packaging>

B、其他配置如下

<!-- 继承spring boot -->

<parent>

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

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

<version>2.0.1.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<!-- 设置属性编码与版本-->

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<!--设置打包时包的名称-->

<build>

<finalName>ROOT</finalName>

</build>

<!--配置依赖-->

<dependencies>

<!--java持久化API主要用于和数据库交互-->

<dependency>

<groupId>javax.persistence</groupId>

<artifactId>persistence-api</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<!-- 移除嵌入式tomcat插件避免与发布后的环境冲突 -->

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

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

<scope>provided</scope>

</dependency>

<!--对数据库的支持-->

<dependency>

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

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

</dependency>

<!-- RabbitMQ -->

<dependency>

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

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

</dependency>

<!--用于提供web服务(servlet容器)-->

<dependency>

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

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

</dependency>

<!--引入thymeleaf模板引擎-->

<dependency>

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

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

</dependency>

<!--引入测试插件比如Junit-->

<dependency>

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

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

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.webjars</groupId>

<artifactId>jquery</artifactId>

<version>3.3.0</version>

</dependency>

<dependency>

<groupId>org.webjars</groupId>

<artifactId>bootstrap</artifactId>

<version>3.3.7</version>

</dependency>

<!--引入全文检索-->

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-solr</artifactId>

<version>2.1.1.RELEASE</version>

</dependency>

<!--  httpclient -->

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpclient</artifactId>

<version>4.3.5</version>

</dependency>

<!--自动重启或自动关闭缓存等功能于开发很有用-->

<dependency>

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

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional>

</dependency>

<!-- 数据库连接池 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.0.8</version>

</dependency>

<!--引入阿里巴巴连接池-->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.1.9</version>

</dependency>

</dependencies>

最后使用右键项目:

Run As > maven clean(清除已打包的其他文件) > maven install(打包)

然后在target目录下便可以看到设置了<finalName>ROOT</finalName>的war包,

之后发布即可

原文地址:http://blog.51cto.com/lxqybyq/2106975

时间: 2024-08-03 23:23:10

Spring boot如何打war包发布到tomcat的相关文章

Apache Ant学习总结(二):使用Ant自动编译JavaWeb项目并打成war包发布到Tomcat中

前言:如题所示,有时我们可能经常需要把JavaWeb项目进行编译,然后打包成war包并发布到Tomacat中进行测试.如果每次都人工进行操作的话,无疑是很麻烦的.这时我们可以通过编写一个自动化的Ant脚本,每次需要发布项目时只需要点击一下就可以完成了,非常方便 测试项目的项目结构如下: Ant脚本build_war.xml: <?xml version="1.0" encoding="UTF-8"?> <project name="ant

spring boot打包为war包,引入外部jar包

1,在src/main/resource下新建目录jar,将外部jar包放在该目录下 2,在pom.xml中添加依赖 groupId,artifactId,version可随便写 <dependency> <groupId>com.huawei</groupId> <artifactId>gsjdbc4</artifactId> <version>1.0</version> <scope>system</

maven项目打包成war包发布到tomcat下...

分为两种情况: 1.当你的项目中没有前端页面时,直接右键项目--Export--选择web下的warFile--选择目录到tomcat安装目录下的webapps下即可访问. 2.当项目中有前端页面时 (1).右键项目--run as--选择maven build--输入clean package--点run直接运行,如下图 出现如下图所示则打包成功 在项目的保存路径下找到target文件下,再找到---.jar包,然后复制到tomcat下的webapps下,然后找到tomcat的bin目录下,运

Spring Boot:项目打包成war并发布到Tomcat上运行

一.修改pom文件 1. 因为SpringBoot中嵌入的有Tomcat,因此要移除嵌入式的Tomcat插件 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-web</artifactId> 4 <!-- 移除嵌入式Tomcat --> 5 <exclusions> 6 <ex

使用idea创建springboot项目并打成war包发布到tomcat8上

1.将pom.xml中的打包方式修改为war <groupId>com.borya</groupId> <artifactId>Project</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> 2.在pom.xml中添加依赖,将scope状态修改为provided <dependency> <gr

将web应用打成war包发布到服务器

如何将web应用打成war应用发布到服务器步骤: (1)先有一web应用"google"在C:盘下,如图: google下目录有WEB-INF文件夹(下有classes.lib.web.xml)和google.html文件 (2)进入C:目录,执行"jar -cvf  goo.war google" (3)然后将生成的goo.jar包放入C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps下 (

Axis2使war包发布为WebService

首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错. 网上找资料的时候看到很多Axis2开发的webservice都是打包成arr格式附带到Axis2框架上发布,这样不能打包成war发布. 整理了一些资料了解了一种可以把Axis2开发的WebService打包成war包发布.     一.环境准备           使用 Axis 来开发 Web

【重磅】Spring Boot 2.1.0 权威发布

如果这两天登录 https://start.spring.io/ 就会发现,Spring Boot 默认版本已经升到了 2.1.0.这是因为 Spring Boot 刚刚发布了 2.1.0 版本,我们来看下 Spring Boot 2 发布以来第一个子版本都发布了哪些内容? 2.1 中的新特性 将spring-boot-starter-oauth2-oidc-client重命名为spring-boot-starter-oauth2-client命名更简洁 添加 OAuth2 资源服务 start

Spring Boot Executable jar/war 原理

spring boot executable jar/war spring boot里其实不仅可以直接以 java -jar demo.jar的方式启动,还可以把jar/war变为一个可以执行的脚本来启动,比如./demo.jar. 把这个executable jar/war 链接到/etc/init.d下面,还可以变为linux下的一个service. 只要在spring boot maven plugin里配置: <plugin> <groupId>org.springfram