Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在AWS CodeBuild-build.xml中使用ant不存在,对于新手来说还有其他问题_Amazon Web Services_Ant_Aws Codebuild - Fatal编程技术网

Amazon web services 在AWS CodeBuild-build.xml中使用ant不存在,对于新手来说还有其他问题

Amazon web services 在AWS CodeBuild-build.xml中使用ant不存在,对于新手来说还有其他问题,amazon-web-services,ant,aws-codebuild,Amazon Web Services,Ant,Aws Codebuild,我试图切换到使用CodeBuild来构建代码,这样我就可以轻松地将代码推送到EC2实例,而不是手动构建和复制 我可以在我的工作站上手动运行ant,所有这些都将按照它应该的方式构建。 我现在正尝试使用AWS代码构建控制台来尝试这一点。 我压缩了我的源代码文件,将其放入S3存储桶中,并将其位置放入AWS CodeBuild的源字段中。我将build.xml放在同一个bucket中,并将build.xml放在zip文件的底部。在构建命令中,我添加了“ant” 我假设build.xml需要转到其他地方?

我试图切换到使用CodeBuild来构建代码,这样我就可以轻松地将代码推送到EC2实例,而不是手动构建和复制

我可以在我的工作站上手动运行ant,所有这些都将按照它应该的方式构建。 我现在正尝试使用AWS代码构建控制台来尝试这一点。 我压缩了我的源代码文件,将其放入S3存储桶中,并将其位置放入AWS CodeBuild的源字段中。我将build.xml放在同一个bucket中,并将build.xml放在zip文件的底部。在构建命令中,我添加了“ant”

我假设build.xml需要转到其他地方? 我是否需要在构建命令中使用更多的“ant”?这就是我手动构建项目时使用的全部内容

从我读到的内容来看,我应该能够压缩我的代码,将其放在S3位置,CodeBuild将提取它并正确构建它

另外,在“环境:如何构建”下,“输出文件”部分是什么?不是为了那些构建正确的工件

还有其他窍门吗?我对这一切都很陌生,所以非常感谢您的帮助!我这周刚了解了蚂蚁。这是一个相当大的项目,有许多类正在构建中-这会导致问题吗?正如我前面所说的,如果我在我的系统上手动运行它,我确实可以创建文件

以下是通过代码生成生成时出现的错误:

    [Container] 2019/03/21 15:32:27 Entering phase BUILD
    [Container] 2019/03/21 15:32:27 Running command ant
    Buildfile: build.xml does not exist!
    Build failed

我解决了我的问题——我从文件夹级别而不是根级别压缩了构建文件。我重新压缩,现在可以看到build.xml

我用这些改变再次构建,看起来我很接近了!由于以下原因而失败:

https://forums.aws.amazon.com/ 2019/03/21 20:57:13 Expanding myapp.jar
https://forums.aws.amazon.com/ 2019/03/21 20:57:13 Skipping invalid artifact path myapp.jar
https://forums.aws.amazon.com/ 2019/03/21 20:57:13 Phase complete: UPLOAD_ARTIFACTS Success: false
https://forums.aws.amazon.com/ 2019/03/21 20:57:13 Phase context status code: CLIENT_ERROR Message: no matching artifact paths found
myapp.jar不是构建所创建的吗

对于工件/名称应该是什么,我非常困惑——这不是从构建中创建的吗?它要求的是ARN-如果没有创建,怎么会有ARN

对于什么是环境/输出文件也非常困惑?这是必需的,但我不知道在这个领域应该做什么?它声明输出文件不能为空。这是否意味着它需要所有正在生成的类文件?如果是这样的话,那么这个构建将在多个位置创建30多个类文件——这是一个很难列出的问题

谢谢
厄尼

我让它工作了!我会将我的发现发布给其他可能遇到困难的人-

因此,我发现“输出”意味着在构建完成后,您希望进入最终工件的所有文件和/或目录

在最后一个jar工件中,我有两个目录。一个是WebContent,另一个是build。它们都有多个子目录。我将
“WebContent/*,build/*”
放在输出文件字段中。它给了我一个jar工件,但当我打开jar时,它没有任何子目录。为了让它包含所有子目录,我必须在输出文件字段中添加
“WebContent/***,build/****”
。所有子目录现在都在zip中,似乎构建成功了。 希望这能帮助其他人。
现在开始创建脚本,并从GitLab开始运行。

看起来您的设置是正确的(至少从您的描述来看)
build.xml
必须位于ZIP的根目录下。一种简单的调试方法是在
buildspec.yaml
中添加diagnose命令,例如,如果其中一个命令是
ls-alR/
,您将在日志中看到构建环境的完整文件系统。或者只需
ls-alR
即可查看当前目录。您将看到已下载和解压缩的内容