12
2022
07

Spring boot项目 maven多模块打包 子模块报错 Unable to find main class 解决方案

 最近在做项目,使用是spring boot。做了一段时间想打包放到服务器上看看效果。于是使用maven命令进行打包。

    打开项目根路径,打开命令行窗口。输入命令mvn install。结果提示如下错误:

image.png

    Unable to find a single main class

    网上查找资料,发现是多个class存在main方法。照着方案,将对应的class的main方法都注释掉了。结果提示另外的错误:

image.png

    Unable to find main class

    原来spring boot项目使用maven打包,如果没有做配置的话,会自动寻找签名是public static void main(String[] args)的方法。所以,第一次提示找到多个class,第二次未找到class。而配置项是什么呢?

 Markup
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.5.3.RELEASE</version>
    <configuration>
        <mainClass>com.xx.webapps.api.main.WebappsApiBidMain</mainClass>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions></plugin>

在plugin/confiuration/mainClass中指定spring boot的入口class

    于是,我在admin模块的pom中添加了该配置,service模块没有添加。再次尝试,结果还是同样的错误。这就奇怪了,多模块工程,只有admin工程才是有入口class的。service模块只是个服务工程,本来就没有入口class。那该如何设置呢?

其实很简单,只需要在service模块中添加:

 Markup
<plugin>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-maven-plugin</artifactId>
	            <configuration>
	                <skip>true</skip>
	            </configuration></plugin>

配置添加,设置过滤即可。

image.png


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。