当前位置:   article > 正文

spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_spring boot run as maven build tomcat插件

spring boot run as maven build tomcat插件
一、配置pom文件
1、移除spring boot内置的tomcat
<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<!-- 移除嵌入式tomcat插件 -->
			<exclusions>
	        	<exclusion>
		            <groupId>org.springframework.boot</groupId>
		            <artifactId>spring-boot-starter-tomcat</artifactId>
		        </exclusion>
		    </exclusions>
		</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

添加Tomcat

<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
2、添加servlet支持
<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
3、设置打包为war
<!-- 这里设置打包的形式  默认为jar -->
<packaging>war</packaging>
  • 1
  • 2

下图是位置
在这里插入图片描述

4、修改SpringApplication 启动类配置
package com.shop.JZShop;

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

public class SpringBootStartApplication extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		// 注意这里要指向原先用main方法执行的Application启动类
		//JzShopApplication为spring boot项目本身的启动类
		return builder.sources(JzShopApplication.class);
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这个启动类要与spring boot项目的启动类在同一目录下
在这里插入图片描述

二、将项目打包为war包
1、右键单击项目名-> Run As ->Maven clean

这里 maven 会清楚掉之前对这个项目所有的打包信息
在这里插入图片描述

2、进行完上一步后会出现如下信息

在这里插入图片描述

3、右键单击项目-> Run As ->Maven build

在这里插入图片描述

4、在 Goals框内填写 -X package 并照下图勾选

在这里插入图片描述

报错1:

执行后如果报错 **No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?**说明可能没有选择jdk版本,右键项目->Build Path 选择默认的jdk即可,或者根据项目所使用的jdk版本进行配置
在这里插入图片描述

同时window->preferences->java->installed JREs 这里需要选择jdk
在这里插入图片描述

报错2:

如果控制台中出现 **非法字符:’\ufeff" ** 一类的错误,但查看相应文件后不存在非法字符,请再次执行 Maven build ,如继续同样报错,请点击eclipse左上角 file -> restart 重启eclipse 或者 右键单击 -> Maven -> Update Project 。如果上述操作不管用,那么可以用Notepad,将报错文件中的内容复制进去,以你项目整体的编码格式(如utf-8)保存一遍,然后将文件替换,即可解决

5、如果一切顺利,最后控制台会显示如下信息

在这里插入图片描述
然后在项目名上右键单击->refresh 刷新一下,在target 目录下会找到生成的war包
在这里插入图片描述

三、将项目部署到Tomcat
1、将war包放到Tomcat的 webapps目录下

在这里插入图片描述

2、修改 tomcat 中 conf 目录下的配置文件 server.xml,在配置文件中找到Host标签,在其中添加如下内容。这里使用的是相对路径,doBase 属性的值是我们所打 war 包的名称
<Context docBase="JZShop-0.0.1-SNAPSHOT" path="/" reloadable="true" privileged="true"/>
  • 1

path 是虚拟路径;
docBase 是应用程序的物理路径;
privileged 设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet;
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,可以在不重起tomcat的情况下,自动装载改变后的应用程序,实现热部署;

修改这一项是因为如果不添加这一句,用tomcat访问时需要加上项目名,这也是为什么doBase属性的值是项目名的原因。

3、tomcat版本问题

因为spring boot内置的tomcat是8.5的版本,所以你所使用的tomcat也需要是8.5的版本,我最开始用的是7.0的版本,tomcat启动后报错项目启动失败。

同时 tomcat 需要配置环境变量,否则也无法正常访问页面 配置环境变量请点击

3、打开浏览器输入 localhost:8080,就成功访问到了主页。
四、使局域网内访问(需将war包放到Linux系统的Tomcat中)
1、给MySQL账号添加远程访问权限

mysql添加远程访问权限点这里

2、开启防火墙,开放8080端口

如果是ubuntu系统的话,点这里

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/146965
推荐阅读
相关标签
  

闽ICP备14008679号