【jar没有主清单属性 报错解决方案 或 加快maven项目启动速度 <skip>true</skip> 避坑】

背景

项目背景是maven项目。

重点关注maven插件 build标签的内容

build标签 在pom.xml文件的最下方

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                	<!--应用程序的入口点-->
                    <mainClass>com.**.**</mainClass>
                     <!--只可以在测试时添加此属性,目的是为了跳过测试阶段直接打包,加快测试时项目启动速度-->
                    <!--生产环境打包,记得去掉此属性,否则会导致打包不完整,jar无法运行-->
                    <!--生产环境打包,记得去掉此属性,否则会导致打包不完整,jar无法运行-->
                    <!--生产环境打包,记得去掉此属性,否则会导致打包不完整,jar无法运行-->
                    <skip>true</skip> 
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

这是我原来的build,maven clean后再 maven package 好几次了,还是报错jar没有主清单属性,查了百度,好多地方都让直接改成他们的maven插件格式。但是我肯定不乐意啊。所以找了半天,我终于找到了问题关键点。

<skip>true</skip> 

是spring-boot-maven-plugin插件的配置之一,它的作用是跳过Maven的测试阶段,直接打包。这个配置项通常在开发过程中使用,因为在开发过程中,我们可能会频繁地进行构建和测试,而测试阶段可能会非常耗时。因此,通过设置此属性,我们可以跳过测试阶段,直接进行打包,从而提高构建速度。
需要注意的是,这个配置项只在开发过程中使用,不应该在生产环境中使用。在生产环境中,我们应该尽可能地保证代码的质量和稳定性,因此需要进行充分的测试。删除它就可以完美解决了

删除配置 < skip >true< /skip > 属性即可

所以解决方案,很简单,删除这个属性就可以完美解决了。

如果想加快maven项目测试时的启动速度,添加配置 < skip >true< /skip > 属性即可

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用`java -jar`命令运行一个Maven打包的项目时,出现"no main manifest attribute, in java-***-SNAPSHOT.jar"错误通常是由于缺乏清单属性导致的。 清单属性是用于标识可执行JAR文件的入口点的,它告诉Java虚拟机应该运行哪个类作为程序的起点。在Maven打包过程,如果没有正确配置清单属性,那么在运行JAR文件时会出现此错误。 有几种可能的原因导致这个问题。其一种可能是在创建Spring Boot项目时,自动导入的spring-boot-maven-plugin插件添加了`<skip>true</skip>`标签,导致类被忽略。 要解决这个问题,你可以在pom.xml文件手动配置清单属性。你需要确保在`<build>`标签下的`<plugins>`标签添加了正确的配置,指定了项目类。例如: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.MyApplication</mainClass> </configuration> </plugin> </plugins> </build> ``` 在上面的配置,`com.example.MyApplication`是你的项目类。你需要根据你的项目结构和类的包名进行相应的修改。 完成配置后,重新运行Maven打包命令,确保生成的JAR文件包含了正确的清单属性。然后再次尝试用`java -jar`命令运行JAR文件,这个错误应该就会消失了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Mavenmaven生命周期-jar没有清单属性no main manifest attribute, in java](https://blog.csdn.net/forest_long/article/details/129474087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java打包maven启动报错jar没有清单属性](https://blog.csdn.net/Xhani/article/details/131243454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值