Java Web 开发用得比较少,刚开始接触 SpringBoot,在打包上有点坎坷,搜索了很久,部署起来总是有问题。下面分享一下成功部署的方法。
第一步在原来的 Application 类继承 SpringBootServletInitializer 并实现 configure 方法,完整代码如下:
@SpringBootApplicationpublic class SpringbootApplication extends SpringBootServletInitializer { public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
} @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application){ return application.sources(SpringbootApplication.class);
}
}第二步修改 pom.xml,因为要发布为 war,所以在
第三步war
打开 IDEA 的 Maven Projects 面板,双击 Lifecycle 下的 clean 和 package 命令,看到下图的 BUILD SUCCESS,表示打包成功,如果是 FAILE 则打包失败,查看失败的原因,进行修正。成功后在项目下的 target 目录下可以看到 war 文件。
因为在第二步中,并没有移除 SpringBoot 自带的 Tomcat,所以打包后的 war 不仅可以发布到外部 Tomcat,也能继续使用自带的 Tomcat 运行项目,运行方法,打开 cmd 命令行窗口,输入:
java -jar 路径/文件名.war如果你的项目还包含本地的 jar 文件,请往下看
maven 打包时,默认不会导入本地的 jar,会导致找不到 class,打包失败,所以打包的时候要把本地的 jar 也打包进去。
假设你的 jar 文件放在项目根目录下的 lib 文件夹,修改 pom.xml,用以下方法引用本地 jar,如我的 lib 目录下有一个 commons-beanutils-1.7.0.jar 文件。注意
org.apache.commons commons-beanutils-1.7.01.7.0 system ${project.basedir}/lib/commons-beanutils-1.7.0.jar
同时还要添加一个插件,注意
org.apache.maven.plugins maven-war-plugin${project.basedir}/lib WEB-INF/lib **/*.jar
作者:杜维希
链接:https://www.jianshu.com/p/842f154b9cb2



