Google Cloud Build集成JFrog Artifactory出现Java版本不兼容错误如何解决
报错根因确认
你遇到的Unsupported major.minor version 52.0报错确实由build-info-extractor-maven3:2.26.1版本导致。该版本的编译目标为Java 11,生成的类文件版本号为55.0,而你当前构建环境使用JDK 8,仅支持最高52.0版本的类文件,因此加载相关类时抛出版本不兼容错误。
解决方案
两种方案可按需选择:
- 方案1:兼容现有JDK 8环境,降级build-info-extractor版本
执行Maven构建前,指定JFrog CLI使用最后一个支持JDK 8的提取器版本即可:jfrog rt config --maven-extractor-version=2.25.4 - 方案2:升级构建环境Java版本
将Cloud Build使用的Maven镜像替换为JDK 11及以上版本,例如gcr.io/cloud-builders/mvn:3.8.6-jdk-11,无需调整提取器版本即可正常使用最新功能。
Cloud Build 与 Artifactory 集成配置(API密钥认证)
前置准备
- 在JFrog控制台生成对应用户的API密钥,将密钥存储到Google Secret Manager,命名为
jfrog_api_key - 给Cloud Build服务账号授予该Secret的访问权限
cloudbuild.yaml 参考配置
steps: # 安装JFrog CLI到工作目录 - name: 'gcr.io/cloud-builders/curl' entrypoint: 'bash' args: - '-c' - | curl -fL https://install-cli.jfrog.io | sh cp jf /workspace/jf chmod +x /workspace/jf # 配置认证并执行Maven构建 - name: 'gcr.io/cloud-builders/mvn:3.5.0-jdk-8' # 选择方案2的话替换为对应JDK11镜像 entrypoint: 'bash' args: - '-c' - | /workspace/jf rt config add artifactory \ --url=${_ARTIFACTORY_URL} \ --user=${_ARTIFACTORY_USER} \ --apikey=$$JFROG_API_KEY export JFROG_CLI_MAVEN_EXTRACTOR_VERSION=2.25.4 # 选择方案2的话删除该行 /workspace/jf rt mvn clean install secretEnv: ['JFROG_API_KEY'] availableSecrets: secretManager: - versionName: projects/${PROJECT_ID}/secrets/jfrog_api_key/versions/latest env: 'JFROG_API_KEY' substitutions: _ARTIFACTORY_URL: '替换为你的Artifactory实例访问地址' _ARTIFACTORY_USER: '替换为你的Artifactory登录用户名'
内容的提问来源于stack exchange,提问作者Nuwan Sameera
相关产品推荐
相关产品推荐

