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

  • 背景
  • 重点关注maven插件 build标签的内容
  • 删除配置 < skip >true< /skip > 属性即可
  • 如果想加快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 > 属性即可