Использование муравья с AWS CodeBuild - build.xml не существует и другие вопросы для новичка - PullRequest
1 голос
/ 21 марта 2019

Я пытаюсь переключиться на использование CodeBuild для создания своего кода, чтобы затем я мог легко перенести его в свои экземпляры EC2 вместо того, чтобы вручную создавать и копировать.

Я могу вручную запустить ant на своей станции, и все будет работать как надо. Сейчас я пытаюсь использовать консоль AWS CodeBuild, чтобы попробовать это. Я заархивировал файлы с исходным кодом, поместил его в корзину S3 и поместил его в исходные поля AWS CodeBuild. У меня есть build.xml в этом же пакете, и я также положил build.xml в основу zip-файла кодов. В команды сборки я положил "муравей".

Я предполагаю, что build.xml должен идти куда-то еще? Нужно ли больше, чем просто "муравей" в командах сборки? Это все, что я использую, когда создаю проект вручную.

Из того, что я прочитал, я должен быть в состоянии сжать мой код, поместить его в расположение S3, и CodeBuild извлечет его и соберет его правильно?

Кроме того, в разделе «Среда: как создать» - для чего нужен раздел «Выходные файлы»? Это не для артефактов, которые построены правильно?

Любые другие советы или хитрости? Я очень новичок во всем этом, поэтому любая помощь приветствуется! Я только что узнал об муравье на этой неделе. Это строит довольно большой проект со множеством классов. Будет ли это причиной проблемы? Как я уже говорил ранее - у меня есть файл сборки, если я запускаю его вручную в моей системе.

Вот ошибка, которую я получаю при сборке с помощью 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 не создает сборка?

Я очень озадачен тем, каким должен быть Артефакт / имя - разве это не то, что создается из сборки? Он запрашивает ARN - как может быть ARN для него, когда он не создан?

Также сильно запутался, что такое файлы Environment / Output? Это требуется, но я понятия не имею, что должно идти в этой области? В нем говорится, что выходные файлы не могут быть пустыми. Значит ли это, что ему нужны все файлы классов, которые создаются? Если это так, то эта сборка создает более 30 файлов классов в разных местах - это тонна для списка.

Спасибо Эрни

1 Ответ

1 голос
/ 22 марта 2019

у меня это работает!Я опубликую свои выводы для других, которые могут столкнуться с трудностями -

Так что я понял, что «Выходы» означают, что это все файлы и / или каталоги, которые вы хотите добавить в свой конечный артефакт после того, как всевстроенный.

У меня есть два каталога, которые я хочу в последнем артефакте jar.Один из них - WebContent, а другой - сборка.У них обоих есть несколько подкаталогов.Я положил "WebContent/*,build/*" в поле выходных файлов.Это дало мне артефакт банку, но когда я открывал банку, у него не было никаких подкаталогов.Чтобы он включал все подкаталоги, мне нужно было сделать поле выходных файлов с "WebContent/**/*,build/**/*".Все подкаталоги теперь находятся в zip-архиве, и кажется, что сборка прошла успешно.Надеюсь, это поможет другим.Теперь приступим к созданию сценария для этого, а также к тому, чтобы заставить его работать из GitLab.

...