spring-cloud-commons maven库问题的解决方法
问题现象描述
如果编译环境需要通过代理访问外部网络,则在编译时可能会遇到依赖拉取不到的问题。
提示如下信息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project spring-cloud-test-support: There are test failures. [ERROR] [ERROR] Please refer to /home/spring-cloud-commons/spring-cloud test support/target/surefire reports for the individual test results.[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
关键过程、根本原因分析
编译环境需要通过代理访问外部网络。
结论、解决方案及效果
方法一:配置代理
- 编辑ModifiedClassPathRunner.java文件。
vim spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathRunner.java
- 按“i”进入编辑模式,修改文件中如下内容。
- 在第42行的下一行添加如下内容。
import org.eclipse.aether.repository.Proxy;
- 注释掉第222行~第224行,在第225行~第230行添加如下内容。
RemoteRepository.Builder builder = new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2"); RemoteRepository remoteRepository = builder .setProxy(new Proxy("https", "127.0.0.1", 3128)).build(); CollectRequest collectRequest = new CollectRequest(null, Arrays.asList(remoteRepository));
其中,127.0.0.1和3128分别表示代理主机的IP地址和端口,操作时请需要根据实际代理环境配置。
- 在第42行的下一行添加如下内容。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 重新执行编译命令。
mvn clean install -Dgpg.skip=true
方法二:将源码中硬编码的maven库地址替换为华为鲲鹏maven仓库
- 打开ModifiedClassPathRunner.java文件。
vim spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathRunner.java
- 注释第223行,在第224行新增如下内容。
"https://mirrors.huaweicloud.com/maven").build()));
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 在“/etc/hosts”中添加华为maven对应的IP地址。
172.30.163.193 mirrors.huaweicloud.com
- 重新执行编译命令。
mvn clean install -Dgpg.skip=true
父主题: 故障排除