Springboot mavne项目多模块打包,报错 找不到 base包,找不到common类等等

简介: Springboot mavne项目多模块打包,报错 找不到 base包,找不到common类等等

报错示例:


[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.4.RELEASE:repackage (default) on project jcdemo-common: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:2.0.4.RELEASE:repackage failed: Unable to find main class -> [Help 1]


ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException


认真看maven打包报错里面提到的关键信息:


repackage (default) on project jcdemo-common


unable to find main class


这是因为什么? 是因为我的jcdemo-common 这个模块是个没有main函数入口的模块,只是用于提供jar依赖给其他的模块使用。


目前我的项目结构为:


jcdemo-parent   这个是父模块


jcdemo-common 这个是基础的公共类模块


jcdemo-myWebA 这是一个web A项目,打包设置是war ,里面引用了common的jar


jcdemo-myWebB 这是一个web B项目,打包设置是war ,里面也引用了common的jar


之所以出现上面找不到 jcdemo-common模块的类,是因为我在  jcdemo-parent 和   jcdemo-common 的pom.xml里面都加入了(不要加!):


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


那么仅仅是因为这个原因吗? 直接看正确流程:

 

maven多模块打包 正规流程



第一步:


首先,在父模块的pom.xml  ,排查是否加了 :


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>


如果有,删掉。

 

第二步:

 

检测所谓的 common 模块的pom.xml,排查是否也加了:


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>


如果有,也删掉,因为我们的common 模块是没有main函数入口的。


然后在common 模块的pom.xml里加上:


    <build>
        <plugins>
            <!-- 资源文件拷贝插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>


第三步


在你的web模块的pom.xml里面,加上:


        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <mainClass>com.xxx.Application</mainClass>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>


注意指明打包的main函数入口,也就是 springboot的启动类:


image.png


ok,可以打包了(直接对着你的父模块点package就行,也可以先clean一下):


image.png


可以看到,该打的都成功打包:


image.png

相关文章
|
15天前
|
消息中间件 负载均衡 Java
最容易学会的springboot gralde spring cloud 多模块微服务项目
最容易学会的springboot gralde spring cloud 多模块微服务项目
|
15天前
|
Java 数据库连接 mybatis
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
|
24天前
|
XML Java 关系型数据库
Springboot启动时报错Property ‘mapperLocations‘ was not specified.
Springboot启动时报错Property ‘mapperLocations‘ was not specified.
18 2
|
24天前
|
Java 应用服务中间件 Maven
Springboot入门基础知识详解 parent starter 引导类 辅助功能
Springboot入门基础知识详解 parent starter 引导类 辅助功能
20 2
|
29天前
|
运维 安全 Java
SpringBoot运维篇(打包,多环境,日志)
SpringBoot运维篇(打包,多环境,日志)
|
22天前
|
Java 应用服务中间件 Maven
SpringBoot(三)之打包方式
在 mainClass 元素中指定主类的完全限定名,这是可执行 JAR 文件的入口点。
37 0
|
22天前
|
Java Linux
springboot打包部署,分离依赖减少上传体积
springboot打包部署,分离依赖减少上传体积
18 0
|
26天前
|
Java
springboot Test 测试类中如何排除一个bean类
springboot Test 测试类中如何排除一个bean类
19 0
|
1月前
|
Java 关系型数据库 MySQL
【已解决】SpringBoot 启动报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb
【已解决】SpringBoot 启动报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb
56 0
|
1月前
|
Java Linux Shell
docker 打包 springboot 项目快速入门
docker 打包 springboot 项目快速入门
39 0

热门文章

最新文章