IntelliJ IDEA Spring Boot(9)打成war包

来源:互联网 发布:mac重装系统无法启动 编辑:程序博客网 时间:2024/06/17 12:14

 http://blog.csdn.net/u011998835/article/details/78386557上一篇文章 讲了如何打成jar包 发布运行,当然我还是想实际运行一下 war包的打包过程。

   war包的打包过程如下:

   

<groupId>com.dashuai</groupId><artifactId>dadminboot</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>DAdminBoot</name>

修改packaging为war包。

剔除掉默认的tomcat

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

剔除自带的tomcat8的容器,并设定tomcat依赖scope为provided的

如果项目中依旧使用了jsp的话,请设定如下

<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope><!-- 如果不注释,你会发现main线程运行报404错误,必须使用 spring-boot:run这个命令运行才行。所以我们注释掉--></dependency>
加上scope为provided,尽管项目在运行的时候,不能使用main线程,但打包的时候,请加上scope。build和打包jar是一样的,如下。那么pom文件的就算OK了。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><configuration><fork>true</fork><mainClass>com.dashuai.dadminboot.DAdminBootApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins><resources><!-- 打包时将jsp文件拷贝到META-INF目录下--><resource><!-- 指定resources插件处理哪个目录下的资源文件 --><directory>src/main/webapp</directory><!--注意此次必须要放在此目录下才能被访问到--><targetPath>META-INF/resources</targetPath><includes><include>**/**</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/**</include></includes><filtering>false</filtering></resource></resources></build>

接下来还要做一件事情。就是application这个类。

@EnableTransactionManagement@EnableCaching@SpringBootApplicationpublic class DAdminBootApplication extends SpringBootServletInitializer{public static void main(String[] args) {SpringApplication.run(DAdminBootApplication.class, args);}@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(DAdminBootApplication.class);}}
需要继承SpringBootServletInitializer

然后我们maven clean maven package 打包成war包。


拷贝到tomcat目录下,


运行tomcat,会自动解压war包。


然后地址栏访问。


此时访问需要加上部署的项目文件夹,除非你拷贝到ROOT目录。

这是war包里面的结构,里面也是有 springboot存在的影子的。

那么两种打包方式就介绍到这。