[目录]
开发环境
| 名称 | 版本 |
|---|---|
| 操作系统 | Windows 10 X64 |
| JDK | JDK1.8(jdk-8u151-windows-x64) |
| IntelliJ IDEA | IntelliJ IDEA 2018.3 |
| Maven | Maven 3.6.0 |
参考
问题描述
我打开了一个项目,编译,报下面的错误

信息:java: Errors occurred while compiling module 'tax-invoice-common'信息:javac 1.8.0_151 was used to compile java sources信息:2019/7/31 11:51 - 编译完成有 16 个错误 和 0 个警告 in 13 s 267 msD:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\JwtHelper.java错误:(3, 28) java: 程序包com.alibaba.fastjson不存在D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\ecc\TrustSDKException.java错误:(12, 28) java: 程序包com.alibaba.fastjson不存在D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\HttpUtils.java错误:(5, 28) java: 程序包com.alibaba.fastjson不存在D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\ecc\SignStrUtil.java错误:(3, 28) java: 程序包com.alibaba.fastjson不存在错误:(4, 28) java: 程序包com.alibaba.fastjson不存在错误:(66, 53) java: 找不到符号符号: 类 JSONObject位置: 类 com.tax.invoice.util.ecc.SignStrUtil错误:(82, 52) java: 找不到符号符号: 类 JSONArray位置: 类 com.tax.invoice.util.ecc.SignStrUtilD:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\data\TRbtTestData.java错误:(3, 39) java: 程序包com.alibaba.fastjson.annotation不存在错误:(20, 6) java: 找不到符号符号: 类 JSONField位置: 类 com.tax.invoice.data.TRbtTestData错误:(24, 6) java: 找不到符号符号: 类 JSONField位置: 类 com.tax.invoice.data.TRbtTestDataD:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\ecc\TrustSDK.java错误:(12, 28) java: 程序包com.alibaba.fastjson不存在错误:(13, 35) java: 程序包com.alibaba.fastjson.parser不存在D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\model\wxReimburse\Conversion.java错误:(3, 28) java: 程序包com.alibaba.fastjson不存在错误:(4, 28) java: 程序包com.alibaba.fastjson不存在D:\v_hwhao\Code-Java\trunk\tax-invoice-cloud\tax-invoice-common\src\main\java\com\tax\invoice\util\JSONUtil.java错误:(3, 28) java: 程序包com.alibaba.fastjson不存在错误:(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 安装与配置
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><mirror><id>internal</id><mirrorOf>*</mirrorOf><name>internal repository</name><url>http://maven.oa.com/nexus/content/groups/public/</url></mirror></mirrors><profiles></profiles></settings>
发现里面没有配置本地仓库的内容,于是我把此文件修改为下面的内容
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\Program Files\Maven\Repository</localRepository><pluginGroups></pluginGroups><proxies></proxies><servers><server><id>internal.releases</id><username>rdm</username><password>rdm</password></server><server><id>internal.snapshots</id><username>rdm</username><password>rdm</password></server></servers><mirrors><mirror><id>internal</id><mirrorOf>*</mirrorOf><name>internal repository</name><url>http://maven.oa.com/nexus/content/groups/public/</url></mirror></mirrors><profiles><profile><id>internal</id><repositories><repository><id>central</id><url>http://maven.oa.com/nexus/content/groups/public/</url></repository><repository><id>snapshots</id><url>http://maven.oa.com/nexus/content/repositories/thirdparty-snapshots</url></repository></repositories><pluginRepositories><pluginRepository><id>my-repo</id><name>my-repo</name><url>http://maven.oa.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><activeProfile>internal</activeProfile></activeProfiles></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
等待加载成功后,重新编译运行,编译成功,问题解决
