错误(3, 28) java 程序包com.alibaba.fastjson不存在

2019年07月31日 16:48 · 阅读(9558) ·

[目录]

开发环境

名称 版本
操作系统 Windows 10 X64
JDK JDK1.8(jdk-8u151-windows-x64)
IntelliJ IDEA IntelliJ IDEA 2018.3
Maven Maven 3.6.0

参考

Maven 安装与配置

10.Spring Cloud-服务注册与发现(Eureka)-无法解析符号

问题描述

我打开了一个项目,编译,报下面的错误

  1. 信息:java: Errors occurred while compiling module 'tax-invoice-common'
  2. 信息:javac 1.8.0_151 was used to compile java sources
  3. 信息:2019/7/31 11:51 - 编译完成有 16 个错误 0 个警告 in 13 s 267 ms
  4. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\JwtHelper.java
  5. 错误:(3, 28) java: 程序包com.alibaba.fastjson不存在
  6. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\ecc\TrustSDKException.java
  7. 错误:(12, 28) java: 程序包com.alibaba.fastjson不存在
  8. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\HttpUtils.java
  9. 错误:(5, 28) java: 程序包com.alibaba.fastjson不存在
  10. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\ecc\SignStrUtil.java
  11. 错误:(3, 28) java: 程序包com.alibaba.fastjson不存在
  12. 错误:(4, 28) java: 程序包com.alibaba.fastjson不存在
  13. 错误:(66, 53) java: 找不到符号
  14. 符号: JSONObject
  15. 位置: com.tax.invoice.util.ecc.SignStrUtil
  16. 错误:(82, 52) java: 找不到符号
  17. 符号: JSONArray
  18. 位置: com.tax.invoice.util.ecc.SignStrUtil
  19. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\data\TRbtTestData.java
  20. 错误:(3, 39) java: 程序包com.alibaba.fastjson.annotation不存在
  21. 错误:(20, 6) java: 找不到符号
  22. 符号: JSONField
  23. 位置: com.tax.invoice.data.TRbtTestData
  24. 错误:(24, 6) java: 找不到符号
  25. 符号: JSONField
  26. 位置: com.tax.invoice.data.TRbtTestData
  27. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\ecc\TrustSDK.java
  28. 错误:(12, 28) java: 程序包com.alibaba.fastjson不存在
  29. 错误:(13, 35) java: 程序包com.alibaba.fastjson.parser不存在
  30. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\model\wxReimburse\Conversion.java
  31. 错误:(3, 28) java: 程序包com.alibaba.fastjson不存在
  32. 错误:(4, 28) java: 程序包com.alibaba.fastjson不存在
  33. D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\JSONUtil.java
  34. 错误:(3, 28) java: 程序包com.alibaba.fastjson不存在
  35. 错误:(4, 28) java: 程序包com.alibaba.fastjson不存在

项目中错误指向这句代码

问题分析

这个错误和昨天遇到的错误 10.Spring Cloud-服务注册与发现(Eureka)-无法解析符号 非常类似,于是我猜测是 Maven 的配置问题

问题解决

修改 Maven 配置文件-settings.xml

我估计是引用 import com.alibaba.fastjson.JSON;Maven 仓库里找不到对应的包,于是我打开 Maven 的配置文件 D:\Program Files\apache-maven-3.6.0\conf\settings.xml

关于下面的路径为什么是这些,请参考 Maven 安装与配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <pluginGroups>
  6. </pluginGroups>
  7. <proxies>
  8. </proxies>
  9. <servers>
  10. </servers>
  11. <mirrors>
  12. <mirror>
  13. <id>internal</id>
  14. <mirrorOf>*</mirrorOf>
  15. <name>internal repository</name>
  16. <url>http://maven.oa.com/nexus/content/groups/public/</url>
  17. </mirror>
  18. </mirrors>
  19. <profiles>
  20. </profiles>
  21. </settings>

发现里面没有配置本地仓库的内容,于是我把此文件修改为下面的内容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <localRepository>D:\Program Files\Maven\Repository</localRepository>
  6. <pluginGroups></pluginGroups>
  7. <proxies></proxies>
  8. <servers>
  9. <server>
  10. <id>internal.releases</id>
  11. <username>rdm</username>
  12. <password>rdm</password>
  13. </server>
  14. <server>
  15. <id>internal.snapshots</id>
  16. <username>rdm</username>
  17. <password>rdm</password>
  18. </server>
  19. </servers>
  20. <mirrors>
  21. <mirror>
  22. <id>internal</id>
  23. <mirrorOf>*</mirrorOf>
  24. <name>internal repository</name>
  25. <url>http://maven.oa.com/nexus/content/groups/public/</url>
  26. </mirror>
  27. </mirrors>
  28. <profiles>
  29. <profile>
  30. <id>internal</id>
  31. <repositories>
  32. <repository>
  33. <id>central</id>
  34. <url>http://maven.oa.com/nexus/content/groups/public/</url>
  35. </repository>
  36. <repository>
  37. <id>snapshots</id>
  38. <url>http://maven.oa.com/nexus/content/repositories/thirdparty-snapshots</url>
  39. </repository>
  40. </repositories>
  41. <pluginRepositories>
  42. <pluginRepository>
  43. <id>my-repo</id>
  44. <name>my-repo</name>
  45. <url>http://maven.oa.com/nexus/content/groups/public/</url>
  46. <releases>
  47. <enabled>true</enabled>
  48. </releases>
  49. <snapshots>
  50. <enabled>true</enabled>
  51. </snapshots>
  52. </pluginRepository>
  53. </pluginRepositories>
  54. </profile>
  55. </profiles>
  56. <activeProfiles>
  57. <activeProfile>internal</activeProfile>
  58. </activeProfiles>
  59. </settings>

替换 Maven 仓库内容

Maven 下载很多东西很慢,于是我让编译这个项目没有报错的同事把它的仓库内容拷贝给我

其实这里即使不拷贝,编译器也会重新下载的

我先备份自己之前的仓库 D:\Program Files\Maven\Repository - 备份 - 2019年7月31日

再把他提供的内容拷贝到我的仓库 D:\Program Files\Maven\Repository

使用 Beyond Compare 4 工具对比如下,可以看到添加了一些内容

IDE-Maven project need to be imported

接着我返回 IDE IntelliJ IDEA 2018.3 x64,发现右下角弹出下面的窗口

选择 Import Changes

等待加载成功后,重新编译运行,编译成功,问题解决