关于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插件的方法也是没有用的,这样就需要进行其他配置,这部分没遇到暂不考虑(工作时间,摸鱼最重要)。
不过这方面的有需要的话可以参考 这个链接