关于Maven打包后Jar包运行报错 XXX.jar找不到主清单属性的问题

方法一:普通Maven项目

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--mainclass是我们的入口类,选择各个模块下的启动类的地址-->
                    <mainClass>org.uto.demo.SsoDemoApp</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

方法二:SpringBoot中的Maven项目

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.dependencies.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

方法三:没验证过仅供参考

<build>
      <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>你自己的启动类</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 问题原因:

  通过查看Jar包发现在Jar包中的MANIFEST.MF文件缺少Main-Class的信息,jar包运行时会根据这个查找启动类,一般的Maven没有配置的话会出现这个问题,直接使用方法一配置就行,

  但如果是我们使用自定义节点的话配置Maven插件的方法也是没有用的,这样就需要进行其他配置,这部分没遇到暂不考虑(工作时间,摸鱼最重要)。

  不过这方面的有需要的话可以参考  这个链接

posted @ 2022-11-16 14:31  Yapi酱  阅读(429)  评论(0)    收藏  举报