文档

构建问题

更新时间:

本文主要介绍流水线构建相关常见问题。

Java 构建常见问题

Java 构建报错 Could not resovle dependencies for project com.xxx

问题描述:Java构建步骤依赖缺失导致构建失败,典型报错如下。

image..png

解决方案:请参考 Maven依赖配置 检查流水线构建使用的 settings.xml 是否符合预期,检查 settings.xml 文件中配置的依赖库是否符合预期,检查依赖库中是否存在目标包文件。

Java 构建失败:未拉取到最新依赖包

问题描述:Java构建过程中,未拉取到最新依赖包导致构建失败。

解决方案:

  1. 若最新依赖包为新版本号,请检查 pom 文件中是否更新了相应版本号。

  2. 若最新依赖包为老版本号(对已存在的依赖包进行了相同版本的覆盖),解决方法如下:

    1. 若依赖包是 snapshot 版本,可使用-U参数强制刷新。构建命令参考如下:

      mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip -U
    2. 若依赖包是 release 版本,可能原因是老的 release 依赖包已经被 Flow 缓存,因为版本未发生更新,构建过程中不会重新下载最新依赖包。可参考 缓存设置 清理缓存后重试。

Gradle 构建报错 ./gradlew: No such file or directory

问题描述:Java构建步骤失败,提示 ./gradlew: No such file or directory,典型报错如下图。

image..png

解决方案:Flow 未提供内置 Gradle,建议使用GradleWrapper,请检查代码目录下是否存在 gradlew 文件,若不存在请上传 gradlew 文件后重试。

Gradle 构建报错 ./gradlew:Permission denied

问题描述:Java构建步骤失败,提示 ./gradlew:Permission denied,典型报错如下图。

image..png

解决方案:该错误原因为 gradlew 没有执行权限,可以在构建命令中通过chmod +x gradlew修改 gradlew 权限后重试。详见下图。

image..png

Gradle 构建缓慢或超时失败

问题描述:Java构建步骤Gradle构建缓慢或下载依赖超时失败。

解决方案:

  1. 检查 Gradle Wrapper 是否存在跨境网络等问题,如有,可参考构建环境更换下载源。

  2. 检查构建日志是否存在跨境下载依赖情况,如有,可以修改 build.gradle 文件,将依赖仓库配置为国内代理。如下示例。

buildscript {
    repositories {
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
        maven {
            url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        }
    }
}

allprojects {
    repositories {
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
        maven {
            url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        }
    }
}

PHP 构建常见问题

PHP 构建报错 requested PHP extension xxx is missing from your system

问题描述:composer install 安装失败,提示缺少部分依赖。

解决方案:可以通过类似apt-get install xxx或者yum install xxx 指令安装相关依赖。

PHP 构建 Composer 版本不满足

问题描述:PHP 构建时因 Composer 版本问题导致失败

解决方案:云效默认 PHP 环境中,提供的 Composer 为 1.8.6。您可通过添加以下指令将默认环境中的 Composer 版本快速升级至 2.1.5。

wget https://rdc-public-software.oss-cn-hangzhou.aliyuncs.com/composer/2.1.5/composer.phar -O /usr/local/bin/composer
composer

Go 构建常见问题

GO 构建报错 not found: xxx 无法访问仓库

问题描述:Go构建步骤报错not found xxx,无法访问仓库,典型报错如下。

image..png

解决方案:Go 构建过程中,如果需要通过 private registry 下载依赖文件,需要在环境中配置相关凭证,可参考 设置依赖下载访问凭证 配置。

GO 构建下载海外依赖导致构建缓慢

问题描述:从 Github 等海外仓库直接下载构建依赖会导致构建缓慢。

解决方案:建议添加以下命令,设置国内代理。

export GOPROXY=https://goproxy.cn

GO 构建报错 no rule to make target build

问题描述:使用make build执行 go 构建,报错 no rule to make target build...。

解决方案:

  1. 执行 make build 需要代码仓库下有 makefile 文件,请检查您代码中该文件是否存在。

  2. 修改流水线中的执行命令,使用本地可以通过的构建命令。

构建物管理常见问题

构建物上传失败,报错:找不到指定文件或文件夹...

问题描述:当您的代码经过 Flow 构建后,生成了您的构建产物(例如:jar 包),需要先将构建物进行上传,后续部署任务(例如:主机部署 ECS)才可以获取构建物的下载地址并执行部署。在构建物上传的步骤中,您可以为制品选取一个名称,该名称在流水线后续阶段(比如部署阶段)会被引用到。此外,用户可以指定打包路径,该路径可以为一个文件或文件夹,系统会将其打包为一个压缩包。如果用户想将多个文件或文件夹打包,也可以点击”+”号添加更多的打包路径。

image.png

当您的打包路径可能填写错误,会导致您的构建物上传失败,典型的报错信息如下:

image.png

典型错误场景:Java 项目中包含了多个微服务,Flow 的构建物上传步骤的打包路径中需要填写构建物的子目录。如下图,微服务 spring-boot-mp-demo 的构建物子目录在spring-boot-mp-demo/target/目录下,需要将打包路径修改为spring-boot-mp-demo/target/

解决方案:通过 Java 构建步骤的日志,确认你需要上传的具体路径,修改为正确的上传路径即可。

image.png
  • 本页导读 (0)
文档反馈