将 ant 与 AWS CodeBuild 结合使用 - build.xml 不存在以及新手的其他问题
Using ant with AWS CodeBuild - build.xml does not exist and other questions for a newbie
我正在尝试切换到使用 CodeBuild 来构建我的代码,这样我就可以轻松地将它推送到我的 EC2 实例,而不是手动构建和复制。
我可以在我的站上手动 运行 蚂蚁,一切都会按预期构建。
我现在正在尝试使用 AWS CodeBuild 控制台来尝试这个。
我压缩了我的源代码文件并将其放入 S3 存储桶中,并将其位置放在 AWS CodeBuild 的源字段中。我在同一个存储桶中有 build.xml,我还将 build.xml 放在代码 zip 文件的底部。在我输入 "ant".
的构建命令中
我假设 build.xml 需要去别的地方?
在构建命令中我需要的不仅仅是 "ant" 吗?这就是我手动构建项目时使用的所有内容。
根据我的阅读,我应该能够压缩我的代码,将它放在 S3 位置,然后 CodeBuild 将提取它并正确构建它?
此外,在 "Environment: How to Build" 下 - "Output files" 部分是做什么用的?不是为了构建正确的工件吗?
还有其他提示或技巧吗?我对这一切都很陌生,所以感谢您的帮助!我这周才知道蚂蚁。这是在构建一个相当大的项目,其中有许多 class 正在构建 - 这会导致问题吗?就像我之前说的那样 - 如果我 运行 在我的系统上手动创建它,我确实有它的构建文件。
这是我通过 Code Build 构建时遇到的错误:
[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 构建正在创建什么?
我很困惑 Artifact/name 应该是什么 - 这不是从构建中创建的吗?它要求一个 ARN - 没有创建它怎么会有 ARN?
也很困惑Environment/Output文件是什么?这是必需的,但我不知道该领域应该做什么?它指出输出文件不能为空。这是否意味着它需要正在构建的所有 class 文件?如果是这样,那么此构建将在多个位置创建 30 多个 class 文件 - 数量不胜枚举。
谢谢
厄尼
我有它的工作!我将 post 我的发现供其他人可能正在苦苦挣扎的人使用 -
所以我想通了 "Outputs" 意味着所有文件 and/or 目录是什么,你想要在所有构建之后进入你的最终工件。
我在最终的 jar 工件中有两个目录。一个是 WebContent,另一个是构建。它们都有多个子目录。我把 "WebContent/*,build/*"
放在输出文件字段中。它给了我一个 jar 工件,但是当我打开 jar 时,它没有任何子目录。为了让它包含所有子目录,我必须将输出文件字段设置为 "WebContent/**/*,build/**/*"
。所有子目录现在都在 zip 中,看起来好像构建成功了。
希望这可以帮助其他人。
现在开始为此创建一个脚本,并使其在 GitLab 中运行。
我正在尝试切换到使用 CodeBuild 来构建我的代码,这样我就可以轻松地将它推送到我的 EC2 实例,而不是手动构建和复制。
我可以在我的站上手动 运行 蚂蚁,一切都会按预期构建。 我现在正在尝试使用 AWS CodeBuild 控制台来尝试这个。 我压缩了我的源代码文件并将其放入 S3 存储桶中,并将其位置放在 AWS CodeBuild 的源字段中。我在同一个存储桶中有 build.xml,我还将 build.xml 放在代码 zip 文件的底部。在我输入 "ant".
的构建命令中我假设 build.xml 需要去别的地方? 在构建命令中我需要的不仅仅是 "ant" 吗?这就是我手动构建项目时使用的所有内容。
根据我的阅读,我应该能够压缩我的代码,将它放在 S3 位置,然后 CodeBuild 将提取它并正确构建它?
此外,在 "Environment: How to Build" 下 - "Output files" 部分是做什么用的?不是为了构建正确的工件吗?
还有其他提示或技巧吗?我对这一切都很陌生,所以感谢您的帮助!我这周才知道蚂蚁。这是在构建一个相当大的项目,其中有许多 class 正在构建 - 这会导致问题吗?就像我之前说的那样 - 如果我 运行 在我的系统上手动创建它,我确实有它的构建文件。
这是我通过 Code Build 构建时遇到的错误:
[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 构建正在创建什么?
我很困惑 Artifact/name 应该是什么 - 这不是从构建中创建的吗?它要求一个 ARN - 没有创建它怎么会有 ARN?
也很困惑Environment/Output文件是什么?这是必需的,但我不知道该领域应该做什么?它指出输出文件不能为空。这是否意味着它需要正在构建的所有 class 文件?如果是这样,那么此构建将在多个位置创建 30 多个 class 文件 - 数量不胜枚举。
谢谢 厄尼
我有它的工作!我将 post 我的发现供其他人可能正在苦苦挣扎的人使用 -
所以我想通了 "Outputs" 意味着所有文件 and/or 目录是什么,你想要在所有构建之后进入你的最终工件。
我在最终的 jar 工件中有两个目录。一个是 WebContent,另一个是构建。它们都有多个子目录。我把 "WebContent/*,build/*"
放在输出文件字段中。它给了我一个 jar 工件,但是当我打开 jar 时,它没有任何子目录。为了让它包含所有子目录,我必须将输出文件字段设置为 "WebContent/**/*,build/**/*"
。所有子目录现在都在 zip 中,看起来好像构建成功了。
希望这可以帮助其他人。
现在开始为此创建一个脚本,并使其在 GitLab 中运行。