springboot的打包方式

先写一个测试接口

 1     package com.example.demo;
 2      
 3     import org.springframework.web.bind.annotation.RequestMapping;
 4     import org.springframework.web.bind.annotation.RestController;
 5      
 6     @RestController
 7     public class DemoController {
 8      
 9         @RequestMapping("/test")
10         String hello() {
11             return "hello";
12         }
13     }




一 jar形式

(1)pom.xml

  <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> 



(2)在Terminal中执行 mvn clean package

  mvn clean package -Dmaven.test.skip=true  //跳过测试
打包后的jar   demo-0.0.1-SNAPSHOT.jar

(3)在Target下 执行 java -jar  demo-0.0.1-SNAPSHOT.jar
(4)启动成功后在浏览器中输入  http://localhost:8080/test
可以看到浏览器中出现测试接口的返回值hello

二 war形式

war包需要在tomcat的webapps下运行

(1)pom.xml修改

     <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> 

(2)将启动类继承SpringBootServletInitializer重写configure(SpringApplicationBuilder builder)方法

   

 1 package com.example.demo;
 2      
 3     import org.springframework.boot.SpringApplication;
 4     import org.springframework.boot.autoconfigure.SpringBootApplication;
 5     import org.springframework.boot.builder.SpringApplicationBuilder;
 6     import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 7      
 8     @SpringBootApplication
 9     public class DemoApplication extends SpringBootServletInitializer {
10      
11         public static void main(String[] args) {
12             SpringApplication.run(DemoApplication.class, args);
13         }
14      
15         @Override
16         protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
17             return builder.sources(DemoApplication.class);
18         }
19     }



(3)在Terminal中执行 mvn clean package
打包后的war   demo-0.0.1-SNAPSHOT.war

(4)将demo-0.0.1-SNAPSHOT.war 拷贝到tomcat下的webapps文件夹下
在tomcat运行时会自动将war解压的webapps下
        运行tomcat下bin中的startup.bat  
(5)启动成功后在浏览器中输入  http://localhost:8080/demo-0.0.1-SNAPSHOT/test
可以看到浏览器中出现测试接口的返回值hello

(6)如果在url中想不带项目名称的话,直接把tomcat-->webapps中的ROOT文件删掉,将demo-0.0.1-SNAPSHOT.war重命名为ROOT.war即可


补充:如果启动tomcat失败 不一定是程序的问题 有可能是tomcat的版本问题或者tomcat中有些配置文件被修改了 ,可以换成其他版本试试 或者重新到Apache(http://tomcat.apache.org/)上重新下载一个试试
在我本地使用tomcat7 会报错 但是使用tomcat8 tomcat9 却能正常跑起来

猜你喜欢

转载自www.cnblogs.com/t3306/p/10219352.html