zoukankan      html  css  js  c++  java
  • xxx.jar或者xxx.war中没有主清单属性和spring-boot-maven-plugin的作用

    因为springboot本身集成了tomcat插件,所以我们可以直接使用mvn clean package命令打成jar包或者war包,然后使java -jar xxx.jar 或者 java -jar xxx.war命令非常方便的去部署运行项目。
    但是在执行命令时提示:

    PS F:wkh_codemy-blog	arget> java -jar myblog.war
    myblog.war中没有主清单属性
    PS F:wkh_codemy-blog	arget>
    

    这里引出一个问题:主清单属性是什么

    当我们把springboot项目打成war包或者jar后,解压之后我们可以发现一个名为META-INF文件夹。其中META-INF文件夹下有一个名为MANIFEST.MF的文件,该文件指明了程序的入口以及版本信息等内容,内容如下

    Manifest-Version: 1.0
    Implementation-Title: my-blog
    Implementation-Version: 1.0-SNAPSHOT
    Archiver-Version: Plexus Archiver
    Built-By: hua
    Implementation-Vendor-Id: com.wangkaihua
    Spring-Boot-Version: 1.4.0.RELEASE
    Implementation-Vendor: Pivotal Software, Inc.
    Main-Class: org.springframework.boot.loader.WarLauncher
    Start-Class: com.wangkaihua.myblog.Application
    Spring-Boot-Classes: WEB-INF/classes/
    Spring-Boot-Lib: WEB-INF/lib/
    Created-By: Apache Maven 3.5.0
    Build-Jdk: 1.8.0_144
    Implementation-URL: http://projects.spring.io/spring-boot/my-blog/
    

    其中有Start-Class:指明了程序的入口类、Spring-Boot-Classes:指明了类的路径,所有编译后的class文件还有Spring-Boot-Lib等等,这些都是springboot项目独立运行必须要知道的。所以应该是我们打包的姿势不对,我们缺少了一个打包插件:spring-boot-maven-plugin

    这里引出第二个问题:spring-boot-maven-plugin作用

    Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。

    解决方法

    在pom.xml中引入对spring-boot-maven-plugin插件的依赖

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

    执行mvn clean package,将自动生成必要的主清单属性,运行java -jar xxx.jar或者java -jar xxx.war时会根据主清单属性找到启动类启动程序。

    参考:
    没有主清单属性
    springboot maven插件详解

  • 相关阅读:
    python进程和线程(五)
    java开发常用Linux命令
    IntelliJ IDEA中Maven插件无法更新索引之解决办法
    Spring事务配置的五种方式
    思考,快与慢(读书笔记)
    freemarker,jsp,velocity比较
    java学习之路经验总结
    iBATIS源码分析
    freemarker的使用心得
    javaScript中的关键字和保留字
  • 原文地址:https://www.cnblogs.com/wangkaihua/p/10165339.html
Copyright © 2011-2022 走看看