【发布时间】:2018-09-14 20:09:10
【问题描述】:
我正在尝试在我的 CodePipeline 构建中使用多个 CodeCommit 源。我在 CodeBuild 中定义了一个指向 CodeCommit 中项目的辅助源,并为其分配了“sec_proj”标识符。在我的主项目中,我有一个 Gradle 构建,其中包含以下代码
copy {
from System.getProperty("CODEBUILD_SRC_DIR_sec_proj", CODEBUILD_SRC_DIR_sec_proj)
into "$buildDir/sec_proj"
}
当我在本地环境中定义 CODEBUILD_SRC_DIR_sec_proj 时,一切都按预期运行,来自第二个项目的文件被复制并构建完成。但是,当我尝试在管道中运行它时,出现以下错误:
17:50:26.092 [ERROR]
[org.gradle.internal.buildevents.BuildExceptionReporter] Caused by:
groovy.lang.MissingPropertyException: Could not get unknown property
'CODEBUILD_SRC_DIR_sec_proj' for object of type
org.gradle.api.internal.file.copy.CopySpecWrapper_Decorated.
所以很明显我的 gradle 进程没有这个变量可用。
我试图在我的buildspec.yml
phases:
build:
commands:
- ./gradlew -i -d -S build -DCODEBUILD_SRC_DIR_sec_proj=$CODEBUILD_SRC_DIR_sec_proj
它失败并显示相同的消息。而且因为根据文档
您的主要来源在 source 属性下定义。所有其他 来源被称为次要来源并出现在 次要来源。所有辅助源都安装在自己的 目录。该目录存放在内置环境中 变量 CODEBUILD_SRC_DIR_sourceIdentifer。
我好像错过了什么?
【问题讨论】:
标签: gradle aws-codepipeline aws-codebuild aws-codecommit