---
title: 编译spring-cloud-gcp-1.2.1.RELEASE源码
description: "鲲鹏镜像站中提供的二进制包是基于开源代码直接编译打包而成的，不含漏洞及BUG修复。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengwebs/ecosystemEnable/SpringCloud/kunpengspringcloudhoxton_02_0028.html
sourcePath: /source/zh/kunpengwebs/ecosystemEnable/SpringCloud/kunpengspringcloudhoxton_02_0028.html
indexId: 0224f7920e2024a7e97329dab5aa707b8697e90754a6ce86e9fb34fa6f88211788
---
# 编译spring-cloud-gcp-1.2.1.RELEASE源码

鲲鹏镜像站中提供的二进制包是基于开源代码直接编译打包而成的，不含漏洞及BUG修复。

使用开源软件时需遵守开源软件的许可协议。


1. 下载spring-cloud-gcp-1.2.1.RELEASE源码。
  1 2 3 cd /home git config --global http.sslVerify false git clone https://github.com/spring-cloud/spring-cloud-gcp.git

2. 切换到指定版本。
  1 2 cd spring-cloud-gcp git checkout v1.2.1.RELEASE

3. 配置google-cloud-sdk Yum源。（如果当前环境访问网络时不需要代理，可不执行该步骤。）

  a. 备份Yum源。

```
mkdir -p /etc/yum.repos.d/bak/
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
```


  b. 新建google-cloud-sdk.repo文件。
    1 vim /etc/yum.repos.d/google-cloud-sdk.repo

  c. 按“i”进入编辑模式，输入如下内容。

```
[google-cloud-sdk]
name=Google Cloud SDK
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
sslverify=false
```


  d. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  e. 使Yum源生效。
    1 2 yum clean all yum makecache

4. 安装google-cloud-sdk，google-cloud-sdk-pubsub-emulator和google-cloud-sdk-datastore-emulator。（如果当前环境访问网络时不需要代理，可不执行该步骤。）
  1 yum install -y google-cloud-sdk google-cloud-sdk-pubsub-emulator google-cloud-sdk-datastore-emulator

  如果编译报错“(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)”，则执行以下命令。 yum install -y google-cloud-sdk google-cloud-sdk-pubsub-emulator google-cloud-sdk-datastore-emulator --nobest

5. 完成初始化。（如果当前环境访问网络时不需要代理，可不执行该步骤。）
  1 gcloud init

  使用gcloud命令初始化环境会要求登录Google账号，若没有Google账号，请先注册Google账号。 若编译环境需要借助代理访问Google网站，可参考如下图设置进行初始化，最后将链接复制到浏览器登录，将获取到的验证码填入。 如出现“Enter project id you would like to use”，请输入spring-cloud-gcp。 若已登录Google账号，需选择Google账号。

6. 启动datastore和pubsub。（如果当前环境访问网络时不需要代理，可不执行该步骤。）
  1 2 gcloud beta emulators datastore start --host-port localhost:8181 & gcloud beta emulators pubsub start --host-port localhost:8085 &

7. 替换JAR包。
编译过程中会拉取grpc-netty-shaded-1.23.0.jar包，此jar包不含有ARM64架构so，因此需要进行替换。


  a. 创建库目录“~/.m2/repository/io/grpc/grpc-netty-shaded/1.23.0/”。
    1 mkdir -p ~/.m2/repository/io/grpc/grpc-netty-shaded/1.23.0/

  b. 获取grpc-netty-shaded-1.23.0.jar包。
    1 wget https://mirrors.huaweicloud.com/kunpeng/maven/io/grpc/grpc-netty-shaded/1.23.0/grpc-netty-shaded-1.23.0.jar --no-check-certificate

  c. 将下载的JAR包复制到库目录下。
    1 cp grpc-netty-shaded-1.23.0.jar ~/.m2/repository/io/grpc/grpc-netty-shaded/1.23.0/

8. 编译。
  1 ./mvnw clean install -Dgpg.skip=true

  若显示BUILD SUCCESS，则编译通过。

  如果编译时遇到GcpDatastoreEmulatorIntegrationTests报错，请参考spring-cloud-gcp异常问题的解决方法解决。 由于老旧机械盘读写能力较弱，导致处理业务的时延较高，建议用户使用性能较优的磁盘进行业务验证，例如SSD盘。 编译过程如果卡住，建议重启机器后，挂载磁盘到编译目录，再执行6（可选）和8。

9. 编译完成后关闭datastore和pubsub服务。
  1 pkill -9 java
