Сбой команды Dynami c для задачи Exe c - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь опубликовать sh Lambda zip файл на s3- s3://my-aws-lambda/<projectName>/[release|SNAPSHOT]/. Задача, определенная ниже, publishToS3 завершается неудачно с сообщением

Caused by: java.io.FileNotFoundException: /Users/me/my-lambda/build/distributions

, когда я запускаю

./gradlew clean build -x test -x release

Оцените любую помощь. Спасибо.

task buildZip(type: Zip) {
    from compileJava
    from processResources
    into('lib') {
        from configurations.runtimeClasspath
    }
}

task publishToS3(type: Exec, dependsOn: buildZip) {
    onlyIf { file("${project.buildDir}/distributions").exist() }

    def artifacts = new FileNameByRegexFinder().getFileNames("${project.buildDir}/distributions", /.*\.zip/)
    assert artifacts.size() == 1

    def isSnapShot = artifacts[0].endsWith('-SNAPSHOT.zip')

    def releaseCmd = ("aws s3 cp " +
            "${artifacts[0]} " +
            "s3://my-aws-lambdas/${project.name}/${isSnapShot ? 'SNAPSHOT' : 'release'}/ ").trim().tokenize(' ') as List

    workingDir "${project.buildDir}/distributions"

    commandLine releaseCmd
}

build.dependsOn buildZip

1 Ответ

0 голосов
/ 23 февраля 2020

Если вы находитесь в среде UNIX, вы можете использовать команду find для поиска файлов и использования их вывода.

task scanFiles() {
    def a= "find ${project.buildDir} -name *.zip".execute().text
    String[] files=a.split('\n')
    if(files.length == 1){
        println("We'v got a file :"+a)
    }
    else if(files.length ==0){
        println("We've not no files ")
    }
    else{
        println("We've got multiple files\n"+a)
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...