为了账号安全,请及时绑定邮箱和手机立即绑定

SpringBoot 添加本地 jar 包 打包 war 部署外部 Tomcat

标签:
SpringBoot

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,所以在 <project> 目录下添加

<packaging>war</packaging>
第三步

打开 IDEA 的 Maven Projects 面板,双击 Lifecycle 下的 clean 和 package 命令,看到下图的 BUILD SUCCESS,表示打包成功,如果是 FAILE 则打包失败,查看失败的原因,进行修正。成功后在项目下的 target 目录下可以看到 war 文件。

webp

因为在第二步中,并没有移除 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 文件。注意 <systemPath> 的路径,如果你的 jar 包是在其他路径,请自行修改, ${project.basedir} 是项目的根目录。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-beanutils-1.7.0</artifactId>
    <version>1.7.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/commons-beanutils-1.7.0.jar</systemPath></dependency>

同时还要添加一个插件,注意  <directory> 要指向你的 jar 所在路径

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webResources>
            <resource>
                <directory>${project.basedir}/lib</directory>
                <targetPath>WEB-INF/lib</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
        </webResources>
    </configuration></plugin>



作者:杜维希
链接:https://www.jianshu.com/p/842f154b9cb2


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消