我的一个Spring boot项目在进行打包的时候报错了,报错如下:

Unable to find main class

 

之前没有遇到过这种问题,但是感觉解决起来应该不难,因为问题原因描述的很清楚。就是找不到主类,也可以说是找不到入口类。

网上的说法是:

因为 pom 集成了 boot-parent,打包时,在没有指定 mainClass 入口时,会找所有子模块下的 main 方法,除去 web 目录下有之外,其他模块下面均没有,导致打包异常。

解决方案就是在指定模块添加main入口 :

上面的这个pom是父工程的pom文件,在里面添加了 mainClass指向了子模块中的某一个启动类。实测之后确实解决了这个问题。

代码如下:

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<mainClass>com.dake.shop.ShopOrderApplication</mainClass>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>

				<!--<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>-->
			</plugin>
		</plugins>
	</build>

还有一个解决方法:

在包里面建一个类,里面加一个main方法,什么都不处理。

这个方法是否可行,没有进行测试。

参考:

SpringBoot 打包异常:Unable to find main class

Logo

鸿蒙生态一站式服务平台。

更多推荐