打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
xxx.jar或者xxx.war中没有主清单属性和spring

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

PS F:\wkh_code\my-blog\target> java -jar myblog.war
myblog.war中没有主清单属性
PS F:\wkh_code\my-blog\target>

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

当我们把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插件详解


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring Boot (一)
Spring Boot 发布 jar 包转为 war 包秘籍。
解决maven无法加载本地lib/下的jar包问题
Spring Boot2(004):关于 Build Systems (构建系统)
Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?
Spring Boot从入门到精通(一)搭建第一个Spring Boot程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服