Springboot工程打Jar包和打War包

Springboot工程打Jar包和打War包

  • 1.Springboot项目打包成Jar包
    • 1.1Maven插件
    • 1.2打jar包
    • 1.3运行jar
    • 1.4访问项目路径
    • 1.5停止
  • 2.Springboot项目打War包
    • 2.1设置打包方式为war
    • 2.2修改Springboot内置tomcat配置
    • 2.3Application启动类添加配置
    • 2.4打War包
  • 3.发现问题
  • 4.踩坑(Springboot打War包访问404)

上一篇文章:IntelliJ IDEA创建最简单的Springboot项目说到如何创建一个Springboot项目,项目创建完之后浏览器访问地址输出了“Hello World!”,下面来说下如何在IntelliJ IDEA下打包项目,将上篇文章中的Springboot项目分别打包成Jar包War包

1.Springboot项目打包成Jar包

1.1Maven插件

在Springboot项目中,默认的打包方式为打Jar包,打开IntelliJ IDEA,在界面右侧看到带M字样的Maven侧边栏,我们来逐一了解下常用的几个Maven命令。

  • clean:清空项目target目录
  • compile:编译项目
  • package:打包项目
  • install:将项目打包安装到本地Maven仓库

1.2打jar包

按照如下操作就能将Springboot项目打包成一个jar包。
Springboot工程打Jar包和打War包_第1张图片
生成的jar包在项目的target目录。
Springboot工程打Jar包和打War包_第2张图片
Springboot工程打Jar包和打War包_第3张图片

1.3运行jar

在命令行窗口cd到jar包所在路径,运行刚刚打包好的jar。

java -jar [要运行的jar包名称]

Springboot工程打Jar包和打War包_第4张图片

1.4访问项目路径

浏览器访问,出现“Hello World!”字样,操作成功?
Springboot工程打Jar包和打War包_第5张图片

1.5停止

关闭刚刚启动的jar只需要在控制台中Ctrl + c

2.Springboot项目打War包

2.1设置打包方式为war

在pom.xml中修改打包方式为war,注意该标签的顺序,可在version标签下方添加。


war

2.2修改Springboot内置tomcat配置

如果将Springboot项目打war包,然后将war包放置在外部容器运行,需要“剔除”内置tomcat依赖,这里有两种方式修改内置tomcat配置。

  • 方式1.排除内置tomcat依赖(exclusions标签),添加servlet支持

	org.springframework.boot
	spring-boot-starter-web
	
		
			org.springframework.boot
			spring-boot-starter-tomcat
		
	




	javax.servlet
	javax.servlet-api
	
  • 方式2.设置打包时不将内置tomcat打包(scope标签)

	org.springframework.boot
	spring-boot-starter-tomcat
	provided

2.3Application启动类添加配置

启动类继承SpringBootServletInitializer,重写configure方法

@SpringBootApplication
public class SpringbootDemoApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringbootDemoApplication.class);
    }
}

2.4打War包

Springboot工程打Jar包和打War包_第6张图片
打包成功。
Springboot工程打Jar包和打War包_第7张图片
到war包生成路径复制war包,建议修改下war包名称,然后将war包丢到tomcat中,重启tomcat。
我这里将war包重命名为springboot_demo。
Springboot工程打Jar包和打War包_第8张图片
浏览器访问,这里因为部署在外部容器tomcat8中,访问路径上要加上tomcat下webapps下相应的项目名。
Springboot工程打Jar包和打War包_第9张图片

3.发现问题

细心的朋友会发现之前我们在application.properties中配置了项目的端口为8082,为什么这里访问是用8080?因为我们这里的打包方式为War并且部署到外部容器中,这里的容器我们使用的是tomcat,默认访问端口为8080,所以这里的访问路径端口为tomcat端口,并且要加上项目名称

4.踩坑(Springboot打War包访问404)

在写完Springboot打War包这部分时,我将打包好的war包部署到tomcat7中,注意是tomcat7,访问后发现是404,找不到资源,网上看了其他资料后,将打包好的war包部署到tomcat8中,访问正常。如果部署war包后发现上述问题,可以尝试升级tomcat版本,tomcat版本大于等于JDK版本,我JDK 版本为1.8,tomcat版本为tomcat7,故出现该问题。
Springboot工程打Jar包和打War包_第10张图片

你可能感兴趣的:(Springboot)