java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > package打包一个springcloud项目的某个微服务报错

package打包一个springcloud项目的某个微服务报错问题

作者:WikC.668

这篇文章主要介绍了package打包一个springcloud项目的某个微服务报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

package打包一个springcloud项目的某个微服务报错

事情是这样的 我需要打包一个父工程下的一个微服务 但是package一直报错 找不到公共依赖包api-commons 差了各种帖子都说是maven的问题 我还去C:\Users\云云小宝宝\.m2\repository\com\example\cloud-api-commons路径下找到了这个依赖包根本就是maven的问题提 关键是这个微服务是能正常运行的 就是打包不了 对这个微服务各种 clean和install然后在package都不行 最后直接把父工程clean install 然后在对这个微服务package 完美运行成功

这里是报错提示:

springcloud微服务环境下,maven打包时报错:程序包不存在以及找不到类

血泪史,不一定通用:

微服务中几个子工程有相互依赖时,出现程序包不存在找不到目标类,且会出现找不到启动类相关错误

spring-boot-maven-plugin的坑

IDEA执行正常,打包时报错

查看各个子模块,例如common公共依赖模块,打包插件不建议直接使用spring-boot-maven-plugin,该插件会打成可执行jar,就会去寻找main主函数,可能报找不到启动类的错,且打包后的jar结构不能被其他模块依赖

心得

提供服务的模块使用spring-boot-maven-plugin正常打包,如下:

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

公共依赖的模块需要在插件配置,如下:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- 解决没有main函数报错unable to find main class 的问题-->
                <executions>
                    <execution>
                        <phase>none</phase>
                    </execution>
                </executions>
                <!--打成可被依赖jar结构-->
                <configuration>
                    <classifier>execute</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文