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

原创  郑建华   2020-02-06   954人阅读  0 条评论

    最近在做项目,使用是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。而配置项是什么呢?

<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模块中添加:

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

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

image.png


参考资料:Maven多模块打包遇到的问题详解

                关于SpringBoot的Maven多模块的子模块打包问题

                Spring Boot Maven Plugin打包异常及三种解决方法:Unable to find main class

本文地址:https://www.zjh336.cn/?id=234
版权声明:本文为原创文章,版权归 郑建华 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?