【springboot学习】jar和war打包方式 ╰+哭是因爲堅強的太久メ 2023-07-24 08:58 4阅读 0赞 #### (1)打包成jar包 #### ##### 修改打包方式jar ##### <groupId>com.study</groupId> <artifactId>FirstSpringBoot</artifactId> <version>1.0.0</version> <packaging>jar</packaging> **解决SpringBoot打包成jar后运行提示没有主清单属性** <!--解决SpringBoot打包成jar后运行提示没有主清单属性--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> ##### 编译运行 ##### mvn install #编译 ![在这里插入图片描述][2020041016090695.png] **生成上面的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 ##### <groupId>com.study</groupId> <artifactId>FirstSpringBoot</artifactId> <version>1.0.0</version> <packaging>war</packaging> ##### 移除嵌入式tomcat ##### 将嵌入的tomcat依赖方式改为provided。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> ##### 项目重命名 ##### 利用maven的mvn package 进行打包,打包成功后会在target目录下生成war包,将war包部署到tomcat项目文件下(默认是webapp文件夹下),重启tomcat,打开浏览器访问对应地址,访问地址需要加上项目名字,如果需要手动设置war包的名字,可以通过以下修改pom文件方式修改项目名: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warName>SpringBoot</warName> </configuration> </plugin> ##### 打包部署 ##### mvn install,把生成的war包丢到tomcat的webapp目录下,启动tomcat 注意:war包部署方式,**访问地址需要加上项目名**:http://服务器ip:服务器里Tomcat配置的端口/项目名/接口路径 ![在这里插入图片描述][20200410160927271.png] 注意:我们在application文件中配置的server.port=8081并没有生效 但是配置的端口号没有生效,访问的还是8080端口。 ![在这里插入图片描述][20200410160945839.png] 原因是:**像 `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配置的端口)/项目名/接口路径 [2020041016090695.png]: /images/20230528/9cab9a93132843a0b37b8c6b7d8b1c7f.png [20200410160927271.png]: /images/20230528/2416769b8e7149f5b9a1405c064210a1.png [20200410160945839.png]: /images/20230528/0854ccd26c844c50a0668a94e8e544ce.png
还没有评论,来说两句吧...