maven install的时候报Unable to find main class

目录

    • 问题描述
    • 解决办法
      • 解决方案一:添加一个主函数
      • 解决方案二:将不是web工程的设置跳过
      • 解决方案三:打包插件的作用本质上就是将当前项目所依赖的jar打包到一块,这样jar包就可以运行了,我们完全可以把parent的pom.xml的build打包插件给去掉,哪里需要打包就在哪个子项目的pom.xml上添加。

问题描述

common包由于不是web项目所以我寻思不用放main主函数方法。然后删除掉之后就打包异常了。

maven install的时候报Unable to find main class_第1张图片

正常我们打出来的jar包可以通过java-jar来运行jar包的,运行jar包的时候实际上就是去访问程序当中的主函数方法,所以不管是不是web工程,都不可以没有主函数。

maven install的时候报Unable to find main class_第2张图片

打包的时候我是对父工程进行的clean和install。项目使用了聚合工程,所以对父工程打包就相当于执行整个项目的。

maven install的时候报Unable to find main class_第3张图片

解决办法

需要注意的:父工程pom一定要设置为pom

解决方案一:添加一个主函数

虽然他不是web工程,但是我们依旧可以在包下新建一个类,然后创建一个主函数方法。这样可以避免打包异常。

maven install的时候报Unable to find main class_第4张图片

假如项目当中存在多个主函数,那他还会打包成功吗?我们来做一下试验:

事实证明他会不知道使用哪个主函数而报异常

maven install的时候报Unable to find main class_第5张图片

解决方法:

maven install的时候报Unable to find main class_第6张图片 maven install的时候报Unable to find main class_第7张图片

解决方案二:将不是web工程的设置跳过

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-maven-pluginartifactId>
               <configuration>
                <skip>trueskip>
            configuration>
		plugin>
	plugins>
build>

解决方案三:打包插件的作用本质上就是将当前项目所依赖的jar打包到一块,这样jar包就可以运行了,我们完全可以把parent的pom.xml的build打包插件给去掉,哪里需要打包就在哪个子项目的pom.xml上添加。

maven install的时候报Unable to find main class_第8张图片

可能会有人对这有疑问,web项目引用了common工程,那common工程都没有打包插件,web工程会受影响吗,答案是不会的,关于这一点我已经验证过了。如下将web工程的jar包解压后,会发现尽管common没有主函数,他依然将common打成了jar包,封装到了自己jar包下,而且项目还可以正常运行。

maven install的时候报Unable to find main class_第9张图片

你可能感兴趣的:(#,常见报错,maven,java,spring)