【问题标题】:Gradle fails to get CODEBUILD_SRC_DIR_source1 variable from AWS CodePipelineGradle 无法从 AWS CodePipeline 获取 CODEBUILD_SRC_DIR_source1 变量
【发布时间】: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


    【解决方案1】:

    这是解决方案。原来CODEBUILD_SRC_DIR_sec_proj 在那里,但System.getProperty("CODEBUILD_SRC_DIR_sec_proj", CODEBUILD_SRC_DIR_sec_proj) 不会得到它。但是System.getProperties().getProperty("CODEBUILD_SRC_DIR_sec_proj") 会。然后它就像一个魅力

    【讨论】:

      【解决方案2】:

      查看您的代码:

      System.getProperty("CODEBUILD_SRC_DIR_sec_proj", CODEBUILD_SRC_DIR_sec_proj)

      以及方法的签名:

      System.getProperty(String key, String defaultValue)

      我认为错误消息实际上是返回到可能未定义的变量CODEBUILD_SRC_DIR_sec_proj。 (也许你在别处定义过,我不确定)

      我会简单地推荐:

      copy {
          from System.getProperty("CODEBUILD_SRC_DIR_sec_proj")
          into "$buildDir/sec_proj"
      }
      

      【讨论】:

      • 这就是它的奇怪之处。您的电话将不起作用,但我在回答中所说的电话会
      • @Bostone 你的意思是System.getProperty("CODEBUILD_SRC_DIR_sec_proj") 不起作用?或System.getProperty("CODEBUILD_SRC_DIR_sec_proj", CODEBUILD_SRC_DIR_sec_proj) 不起作用?
      猜你喜欢
      • 2019-07-28
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      相关资源
      最近更新 更多