【springboot学习】jar和war打包方式

(1)打包成jar包
修改打包方式jar
  com.study
  FirstSpringBoot
  1.0.0
  jar
  

解决SpringBoot打包成jar后运行提示没有主清单属性

        
        
            org.springframework.boot
            spring-boot-maven-plugin
            
				true
			
        
编译运行
mvn install #编译

在这里插入图片描述
生成上面的jar包,然后进入当前目录,启动jar包

java -jar FirstSpringBoot-1.0.0.jar   #默认启动方式,一旦关闭客户端,服务终止。
java -jar FirstSpringBoot-1.0.0.jar & #后台启动方式
(2)打包成war包
webApplication需要继承SpringBootServletInitializer并重写configure方法。
@SpringBootApplication
public class HelloWebApplication extends SpringBootServletInitializer {

	public static void main(final String[] args) {
		SpringApplication.run(HelloWebApplication.class, args);
	}
	
	@Override
	protected SpringApplicationBuilder configure(final SpringApplicationBuilder builder){
		return builder.sources(HelloWebApplication.class);
	}
}

maven配置打包方式为war
  com.study
  FirstSpringBoot
  1.0.0
  war
移除嵌入式tomcat

将嵌入的tomcat依赖方式改为provided。

	
	    org.springframework.boot
	    spring-boot-starter-tomcat
	    provided
	
项目重命名

利用maven的mvn package 进行打包,打包成功后会在target目录下生成war包,将war包部署到tomcat项目文件下(默认是webapp文件夹下),重启tomcat,打开浏览器访问对应地址,访问地址需要加上项目名字,如果需要手动设置war包的名字,可以通过以下修改pom文件方式修改项目名:

        
            org.apache.maven.plugins
            maven-war-plugin
            
                SpringBoot
            
        
打包部署

mvn install,把生成的war包丢到tomcat的webapp目录下,启动tomcat

注意:war包部署方式,访问地址需要加上项目名:http://服务器ip:服务器里Tomcat配置的端口/项目名/接口路径
在这里插入图片描述
注意:我们在application文件中配置的server.port=8081并没有生效

但是配置的端口号没有生效,访问的还是8080端口。
在这里插入图片描述
原因是:server.port 这样的Spring Boot属性只有在使用嵌入式Tomcat时才会生效 . 也就是说,如果您通过使用 SpringApplication.run() 执行 main 方法或通过创建可执行JAR并使用 java -jar 启动它来启动应用程序 .

将应用程序作为WAR归档文件部署到独立的Tomcat时,必须通过编辑 server.xml 以及可能的其他配置文件以传统方式配置Tomcat .

(3)war包和jar包的区别

  • tomcat区别

jar包自带内置的tomcat,可以通过server.port,``server.context-path等配置来修改tomcat属性。

war包需要放在外在的tomcat的webapp目录下,然后启动tomcat,才能访问。

  • 访问区别

jar包访问路径 :ip:port/context-path(如果配置了)/接口路径

war包访问路径:ip:port(tomcat配置的端口)/项目名/接口路径

你可能感兴趣的:(SpringBoot,jar和war区别,springboot)