zoukankan      html  css  js  c++  java
  • spring boot打包会有.war.original文件的原因 (笔记)

    今天使用spring boot 2.1.1.RELEASE版本搭建项目,虽然可以直接打包成可运行的jar包,但是由于公司准备采用docker容器来管理项目,所以需要把jar包变成war包,并且war包内也不需要内嵌tomcat。
    经历:按照网上说的在pom中添加代码(更改package类型是必须的<packaging>war</packaging>):

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

    发现打包出来的war包体积仍然很大,而且target下面会出现一个war包和一个.war.original结尾的文件,war文件中仍然包含tomcat的jar包。
    最后观察mvn打包输出的内容如下:

    ......省略......
    [INFO] --- maven-war-plugin:3.2.2:war (default-war) @ sandbox-service ---
    [INFO] Packaging webapp
    [INFO] Assembling webapp [sandbox-service] in [/...省略项目绝对路径.../target/sandbox-service-0.0.1-SNAPSHOT]
    [INFO] Processing war project
    [INFO] Webapp assembled in [139 msecs]
    [INFO] Building war: /...省略项目绝对路径.../target/sandbox-service-0.0.1-SNAPSHOT.war
    [INFO] 
    [INFO] --- spring-boot-maven-plugin:2.1.1.RELEASE:repackage (repackage) @ sandbox-service ---
    [INFO] Replacing main artifact with repackaged archive
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.515 s
    ......省略......
    

    原来maven已经打包好了,然后spring-boot-maven-plugin又重新做了打包的动作,应该是打包成了可以通过-jar运行的包,并且把原来maven打包好的war包重新命名成了.war.original

    当我把pom文件中的代码注释之后就正常了

    <!--  注释spring-boot-maven-plugin原因:因为这个插件会重新打包(repackage),打包成spring-boot可通过-jar形式运行的jar或war包,并且把原来maven打包重名称成.war.original结尾 -->
    <!--
    <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
     -->
    

    如果想在打包的时候定义war名称,还可以添加下面的插件:

    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <warName>war包的名称</warName>
                    </configuration>
                </plugin>
    
  • 相关阅读:
    C#关于HttpClient的应用(二):融云IM集成
    C#关于HttpClient的应用(一):获取IP所在的地理位置信息
    PHP逐字符读取数据
    PHP逐行读取数据
    PHP函数的创建
    PHP数组的创建
    PHP基础学习代码案例
    查看端口号占用情况
    apache错误 Unable to open process" with PID 4!
    NUnit TestFixtureSetup 和 TestFixtureTearDown
  • 原文地址:https://www.cnblogs.com/andysd/p/10105801.html
Copyright © 2011-2022 走看看