如何用GCP Cloud Build+Java17+Gradle7.6构建Jar?执行报错求助
解决Cloud Build + Gradle 7.6 + Java 17构建Jar的问题
错误原因
你遇到的错误是因为直接将build作为命令执行,但该命令在镜像的$PATH中不存在。gradle镜像的默认入口是gradle命令,你的配置相当于试图直接运行build而非gradle build;同时gradle官方镜像的默认工作目录不是Cloud Build挂载源代码的/workspace,会导致找不到项目的构建文件。
推荐解决方案:使用Gradle Wrapper(适配项目指定的Gradle版本)
因为你的项目已经包含Gradle Wrapper,直接使用它能确保使用项目依赖的7.6版本,无需依赖镜像中的gradle版本。只需用包含Java 17的镜像执行./gradlew build即可:
steps: - name: 'openjdk:17' entrypoint: 'bash' args: ['-c', './gradlew build --no-daemon']
说明
openjdk:17:提供Java 17运行环境,满足Gradle 7.6的要求--no-daemon:禁用Gradle守护进程,适合CI/CD环境,避免后台进程残留导致的问题- 该配置会自动使用项目中的
gradlew脚本,下载并运行指定版本的Gradle
备选方案:直接使用gradle:7.6-jdk17镜像
如果坚持使用官方gradle镜像,需要指定正确的工作目录和命令:
steps: - name: 'gradle:7.6-jdk17' workingDirectory: '/workspace' entrypoint: 'gradle' args: ['build', '--no-daemon']
说明
workingDirectory: '/workspace':切换到Cloud Build挂载源代码的目录,确保gradle能找到项目的build.gradle文件- 显式指定
entrypoint: 'gradle'并传入build参数,确保执行gradle build命令
内容的提问来源于stack exchange,提问作者user8787347
相关产品推荐
相关产品推荐

