[转] 将springboot项目打成war包放到外部tomcat运行
转载:https://blog.csdn.net/z69183787/article/details/104063378
作者:OkidoGreen
项目开发中使用过的是springboot快速开发,学过springboot的都知道,他是使用了内置Tomcat进行发布项目,简单来说就是我们可以想开始学的时候用的main方法执行。可是需求要的是将springboot项目打包出来放在外部tomcat下执行。无奈的只好学习如何打包咯。打war包不难,接下来会分了四步走,完成了基本可以打包了。
第一步:pom,xml操作
我们需要移除内置Tomcat的依赖:将原来我们用的spring-boot-starter-web 加入加上<exclusion>如下表示
<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>
第二步:在pom.xml里找到打包的标签,将里面的jar改成war
<packaging>war</packaging>
第三步:找到我们平时启动项目的启动类
原始的:
@SpringBootApplication
public class RecyclingApplication {
public static void main(String[] args) {
SpringApplication.run(RecyclingApplication.class, args);
}
}
修改后的:
@SpringBootApplication
public class RecyclingApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(RecyclingApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(RecyclingApplication.class, args);
}
}
第四步:上面完成了。基本就可以打包啦。接下来就是这么打包的问题了。
点击后找到build Artifacts点击后就可以看到项目名.war 点一下后,去target目录下找就找到我们的war包了。
最后如果出现报错,右键项目,Java Build Path - Classpath - Add Liberary - Server Runtime - Tomcat
第五步:修改pom.xml中Build部分增加executable=true
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>