SpringCloud项目跨模块调用报 程序包...不存在 找不到符号

公司有个项目,使用的时SpringCloudAlibaba微服务框架。今天,更新了同事提交的代码。别的同事更新之后都能运行起来,只有我的不能。报错如下:程序包com.jeethink.system.mapper不存在 … 找不到符号…

大致的起因是同事在一个模块(Operate)调用了另一个模块的类(System)

SpringCloud项目跨模块调用报 程序包...不存在 找不到符号_第1张图片
试了常见的所有方法,均不奏效,最终通过比较两个模块的pom文件,得以解决:

在被调用的System模块下加入以下配置:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                
                <configuration>
                    <classifier>execclassifier>
                configuration>
                
                <executions>
                    <execution>
                        <goals>
                            <goal>repackagegoal>
                        goals>
                    execution>
                executions>
            plugin>
        plugins>
    build>

SpringCloud项目跨模块调用报 程序包...不存在 找不到符号_第2张图片
问题解决。。。

classifier标签的作用,参考:
https://blog.csdn.net/m0_48983233/article/details/124528417

打包同时生成依赖jar包和可执行jar包
  • springboot项目一般打包生成可执行jar,启动作为一个服务,不建议将springboot项目打成一个普通jar包,被其它module依赖。如果有这种依赖需求,建议将依赖的部分,单独抽取出来做一个普通的Maven项目,在springboot项目中引用这个Maven项目。

  • 如果不新建Maven项目,还是想依赖springboot项目,可以同时打包的时候生成普通jar包和可执行jar包,通过exec标签对可执行jar进行命名。这样会打包成两个jar包,不会对普通jar重新命名。

你可能感兴趣的:(spring,cloud,java,spring,boot)