一、原因
打包的方式不对,打包的时候少了文件**
二、解决办法
在pom.xml中添加/修改maven打包依赖:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
三、错误实例
<!--错误方式1:作为普通包导入-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</dependency>
</dependencies>
<!--错误方式2:缺少成员-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
四、原因分析
1.出错现象
2.主清单属性
主清单属性是jar包中MANIFEST.MF文件中的属性,这里主要造成问题的属性是Main-Class: com.tl.SecurityAPP
文件位置在我们我打的jar包下META-INF文件夹下
3.描述
当我们将打包插件依赖删除后会发现项目照样可以打包,由此可见我们出错是因为使用了原始maven打包,并没有使用我们添加的打包插件打包。
没有使用打包插件时在项目中打开MANIFEST.MF文件会发现有Main-Class属性,当打开jar包会发现里面的MANIFEST.MF并没有此属性。
使用打包插件后发现MANIFEST.MF有此属性,且多了xxx.jar.original的文件而且jar包结构也不一样。
四、打包依赖分析
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
1. 说明
<extensions/>
<!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->
<executions>
<!--execution元素包含了插件执行需要的信息-->
<execution>
<!--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标-->
<id/>
<!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->
<phase/>
<!--配置的执行目标-->
<goals/>
<!--配置是否被传播到子POM-->
<inherited/>
<!--作为DOM对象的配置-->
<configuration/>
</execution>
</executions>
2.对比出错依赖配置我们会发现多了点:
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
repackage有啥用呢?
1.将原始Maven打包形成的jar包进行重新打包,包含应用类文件、配置文件、应用所依赖的jar包、Springboot启动相关类(loader等)。
2.将原始Maven打包形成的jar包备份,并重命名为xxxxxx.jar.original,所以我们发现使用打包插件比原始打包方式多了此文件。文章来源:https://www.toymoban.com/news/detail-607076.html
3.使用打包插件打包后我们会发现jar包可以启动了文章来源地址https://www.toymoban.com/news/detail-607076.html
到了这里,关于【问题】----运行jar命令提示没有主清单属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!