IntelliJ IDEA Spring Boot(9)打成war包
程序员文章站
2024-02-03 20:23:34
...
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
@SpringBootApplication
public class DAdminBootApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(DAdminBootApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DAdminBootApplication.class);
}
}
需要继承SpringBootServletInitializer
然后我们maven clean maven package 打包成war包。
拷贝到tomcat目录下,
运行tomcat,会自动解压war包。
然后地址栏访问。
此时访问需要加上部署的项目文件夹,除非你拷贝到ROOT目录。
这是war包里面的结构,里面也是有 springboot存在的影子的。
那么两种打包方式就介绍到这。
上一篇: linux下是sdcard驱动学习
下一篇: Anaconda 使用入门