spring-cloud-function依赖拉取问题的解决方法
问题现象描述
如果编译环境使用代理访问外部网络,可能会遇到依赖拉取失败的问题。
关键过程、根本原因分析
编译环境需要通过代理访问外部网络。
结论、解决方案及效果
您可以通过配置代理或将Maven库替换为华为Maven库来解决当前问题。
方法一:配置代理
- 打开DependencyResolver.java文件。
vim ./spring-cloud-function-compiler/src/main/java/org/springframework/cloud/function/compiler/java/DependencyResolver.java
- 修改以下三处代码后,保存并退出文件。
- 在第81行的下一行添加代码。
import org.eclipse.aether.repository.Proxy;
- 将280行修改为:
.setReleasePolicy(policy(input.getReleases()))
- 在第281行添加内容。
.setProxy(new Proxy("https","127.0.0.1",3128)).build();
其中,127.0.0.1和3128分别表示代理主机的IP地址和端口,操作时请需要根据实际代理环境配置。
- 在第81行的下一行添加代码。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开RuntimeJavaCompilerTests.java文件。
vim ./spring-cloud-function-compiler/src/test/java/org/springframework/cloud/function/compiler/java/RuntimeJavaCompilerTests.java
- 将第142行的“find”修改为“transfer”。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 重新执行编译命令。
./mvnw clean install -Dgpg.skip=true
方法二:将Maven库替换为华为Maven库
- 打开DependencyResolver.java文件。
vim ./spring-cloud-function-compiler/src/main/java/org/springframework/cloud/function/compiler/java/DependencyResolver.java
- 更改为华为鲲鹏maven仓库。
- 在“/etc/hosts”中添加华为鲲鹏maven仓库对应的IP地址。
1 2
echo 172.30.163.193 mirrors.huaweicloud.com >> /etc/hosts cat /etc/hosts
- 为spring-cloud-function-deployer模块添加代理。
vim spring-cloud-function-deployer/src/it/settings.xml
其中username,password,host,port需要根据当前环境进行修改配置。
- 重新执行编译命令。
./mvnw clean install -Dgpg.skip=true
父主题: 故障排除