Mvn打包报错cannot find symbol排查并解决-随笔

       说明一下环境  我用的是Jenkinsfile自动打包部署,Nexus作为Maven的私服,那天去跑任务的时候就报错了,复制了一些jenkins的Console Output如下:

[WARNING] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/utils/MD5Util.java:[74,38] sun.misc.BASE64Encoder is internal proprietary API and may be removed in a future release
[WARNING] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/utils/http/SSLClient.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/utils/http/SSLClient.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/vIo/impl/HouseFoundServiceImpl.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/vIo/impl/HouseFoundServiceImpl.java: Recompile with -Xlint:unchecked for details.
[INFO] 7 warnings 
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[57,29] cannot find symbol
  symbol:   class PersonCreditReportMapper
  location: package com.Apollo.dao.mapper
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[168,13] cannot find symbol
  symbol:   class PersonCreditReportMapper
  location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[1315,12] cannot find symbol
  symbol:   class PersonCreditReport
  location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[1323,9] cannot find symbol
  symbol:   class PersonCreditReport
  location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[1323,53] cannot find symbol
  symbol:   class PersonCreditReport
  location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[INFO] 5 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Apollo 1.0.0 ............................... SUCCESS [  0.127 s]
[INFO] Apollo-dao 1.0.0-SNAPSHOT .................. SUCCESS [  1.371 s]
[INFO] Apollo-api 1.0.0-SNAPSHOT .................. SUCCESS [  0.024 s]
[INFO] Apollo-biz 1.0.0-SNAPSHOT .................. FAILURE [  3.739 s]
[INFO] Apollo-web 1.0.0 ........................... SKIPPED
[INFO] Apollo-test 1.0.0 .......................... SKIPPED
[INFO] Apollo-provider 1.0.0 ...................... SKIPPED
[INFO] Apollo-consumer 1.0.0 ...................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.427 s
[INFO] Finished at: 2024-05-14T09:51:40+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Apollo-biz: Compilation failure: Compilation failure: 
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[57,29] cannot find symbol
[ERROR]   symbol:   class PersonCreditReportMapper
[ERROR]   location: package com.Apollo.dao.mapper
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[168,13] cannot find symbol
[ERROR]   symbol:   class PersonCreditReportMapper
[ERROR]   location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[1315,12] cannot find symbol
[ERROR]   symbol:   class PersonCreditReport
[ERROR]   location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[1323,9] cannot find symbol
[ERROR]   symbol:   class PersonCreditReport
[ERROR]   location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] /home/jenkins/workspace/v1-Apollo/Apollo-biz/src/main/java/com/Apollo/evo/biz/service/xed/impl/DrawServiceImpl.java:[1323,53] cannot find symbol
[ERROR]   symbol:   class PersonCreditReport
[ERROR]   location: class com.Apollo.evo.biz.service.xed.impl.DrawServiceImpl
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[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/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :Apollo-biz

        根据上面的错误代码提示cannot find symbol ;symbol: class PersonCreditReportMapper; location: package com.zlkcxd.dao.mapper (根据错误信息 cannot find symbol ; symbol: class PersonCreditReportMapper; location: package com.zlkcxd.dao.mapper,这通常表明编译器在尝试编译您的项目时,无法找到名为 PersonCreditReportMapper 的类,并且该类预期位于 com.zlkcxd.dao.mapper 包中。

以下是解决此问题的过程:

  1. 检查依赖配置

    • 确保 pom.xml 文件中包含了正确版本的依赖项,该依赖项应该包含 PersonCreditReportMapper 类。
    • 验证 <dependency> 标签中是否包含了正确的 groupIdartifactId 和 version
    • 确保依赖的scope(如 compileprovidedruntime 等)是适合您项目的。
  2. 检查Nexus仓库

    • 登录到Nexus仓库,并验证 PersonCreditReportMapper 类所在的jar包是否确实存在于snapshots库中。
    • 确认jar包是否已经成功发布,并且版本号是您项目依赖中指定的那个。(一直没拉取成功)
  3. 清理Maven本地仓库缓存

    • 有时候,Maven的本地仓库(通常是;/.m2/repository)中的依赖可能损坏或不一致。
    • 尝试删除本地仓库中相关的依赖文件夹,然后重新构建项目。(因为pom.xml配置每次构建不去拉取,导致清理maven也是无效的)

       开发说他用的不是缓存 每次打包都是新拉取的,(秉承着排错过程中谁都不能信的原则)让开发去清理一下缓存再拉取试试,再次拉取也报了同样的错误,问题渐渐清晰了由此得出他一直用的就是缓存,再查看了项目的pom.xml文件发现    如下:

<repositories>
    <repository>
        <id>nexus</id>
        <url>maven仓库地址</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>              --改为ture 无法拉取是因为maven默认snapshot快照库是不拉取的,打开snapshot快照库,允许快照库生效
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

将<enabled>False</enabled>改为<enabled>true</enabled>;再次测试可以正常打包发布了,问题得以解决。

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值