springboot 打war包

由于springboot 内嵌了tomcat,打包成war包需要剔除tomcat,防止其影响项目在其他web 容器运行。

1、修改 pom.xml

Packaging 修改为war:     <packaging>war</packaging>

<dependencies></dependencies> 标签加入以下代码

<dependencie>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
</dependencie>

<project></project>加入以下代码

<build>
     <finalName>project_name</finalName>
     <plugins>
           <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
           </plugin>
     </plugins>
</build>

Scope:provided  表示打包是省略 此项

  1. 修改启动类

要想springboot项目知道我们的意图,so,我们要引导我们的项目,告诉他我们要打包成war包,在此我们需要继承SpringBootServletInitializer类。

  1. 打包

右键项目Run  as  →  Maven build

 

Goals 栏位输入 clean package,点击Run ,在项目的target 文件夹会生成对应的 war包。

 

另外,如果有外部引入的jar包,

1.在resources下面新建lib文件夹,并把jar包文件放到这个目录下 
这里写图片描述 
2.在pom文件定义几个依赖指向刚才引入的文件

 

<dependency>
            <groupId>com.aliyun.alicom</groupId>
            <artifactId>alicom-mns-receive-sdk</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/alicom-mns-receive-sdk-1.0.0.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.aliyun.mns</groupId>
            <artifactId>aliyun-sdk-mns</artifactId>
            <version>1.1.8</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/aliyun-sdk-mns-1.1.8.jar</systemPath>
        </dependency>

 

 

注意:重点是systemPath这个路径必须得是你jar的路径。其他的按照套路填就行,要求不是太严格。${project.basedir}只是一个系统自己的常量,不用管它

 

报错:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.684 s
[INFO] Finished at: 2020-04-09T13:49:37+08:00
[INFO] Final Memory: 14M/155M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean (default-clean) on project merchandise: Failed to clean project: Failed to delete D:java_codemerchandise	arget -> [Help 1]

参考: https://www.jianshu.com/p/bb6ad174a3c5

https://www.cnblogs.com/liukunjava/p/9577768.html

原文地址:https://www.cnblogs.com/yrjns/p/12542693.html