maven部署项目到tomcat
Posted gaogaoyanjiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven部署项目到tomcat相关的知识,希望对你有一定的参考价值。
一、maven发布项目到远程tomcat
spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢?
1、新建springboot项目(IDEA内置有maven插件,我们也可以使用自配置的maven插件,自定义maven仓库位置,创建maven项目,这里以springboot项目为例)
2、设置Group和Artfact,Type选择maven Project,Packaging打包方式必须选择War包(在tomcat运行必须是war包),
等同于在pom.xml文件中修改打包类型,将spring boot默认的<packaging>jar</packaging>修改为<packaging>war</packaging>形式;
3、选择依赖的jar包(web项目选择web,这里只做测试,有需要可以根据需求选择其他依赖)
4、设置项目名称和项目本地存放目录
5、springboot目录结构
项目创建好后的pom.xml配置
<?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>com.springboot-test</groupId>
<artifactId>taobao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>taobao</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.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>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
-->
</dependency>
<dependency>
<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-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
6、spring boot的web项目中内嵌tomcat服务器,所以如果我们想要发布war包到tomcat项目,要将spring boot中内嵌的tomcat包依赖排除,不然产生冲突,打开下面代码中的注释即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
-->
</dependency>
如果本地开发的时候依然想要使用spring boot内嵌tomcat进行调试,添加如下依赖即可;
也可以去掉如下依赖,或者注释掉<scope>provided</scope>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
7、spring boot发布jar包web程序的入口是main函数所在的类,使用@SpringBootApplication注解。
但是如果war包发布至tomcat,有两种方式。
方式一:需要增加 SpringBootServletInitializer
子类,并覆盖它的 configure
方法。
1、启动类,添加@SpringBootApplication注解
@SpringBootApplication
public class TaobaoApplication {
public static void main(String[] args) {
SpringApplication.run(TaobaoApplication.class, args);
}
}
2、SpringBootServletInitializer
子类,application.sources(TaobaoApplication.class);方法的参数必须和启动类的类名一致。
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(TaobaoApplication.class);
}
}
方式二:直接将main函数所在的类继承 SpringBootServletInitializer
子类,并覆盖它的 configure
方法。
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
@Override
protectedSpringApplicationBuilder configure(
SpringApplicationBuilder application) {
returnapplication.sources(DemoApplication.class);
}
publicstaticvoid main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
以上就完成了spring boot项目打包war包的所有步骤,可以发布至tomcat7及其以上版本。
8、创建测试类
二、maven自动化部署
1、
2、
3、
4、
5、
三、发布maven项目到中央仓库(Central Repository)
https://blog.csdn.net/zz210891470/article/details/53737883
以上是关于maven部署项目到tomcat的主要内容,如果未能解决你的问题,请参考以下文章