[目录]
开发环境
名称 | 版本 |
---|---|
操作系统 | 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 ms
D:\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.SignStrUtil
D:\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.TRbtTestData
D:\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
等待加载成功后,重新编译运行,编译成功,问题解决