Heroku — ошибка во время git push/deployment, та же версия этого кода уже собрана

У меня проблема с развертыванием моего приложения Springboot в Heroku. После запуска git push heroku master я сталкиваюсь с ошибкой ниже:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  9.350 s
[INFO] Finished at: 2020-12-22T06:33:14Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project audit: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :audit
remote:  !     Push rejected, failed to compile Java app.
remote: 
remote:  !     Push failed
remote:  !
remote:  ! ## Warning - The same version of this code has already been built:             31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote:  !
remote:  ! We have detected that you have triggered a build from source code with version 31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote:  ! at least twice. One common cause of this behavior is attempting to deploy code     from a different branch.
remote:  !
remote:  ! If you are developing on a branch and deploying via git you must run:
remote:  !
remote:  !     git push heroku <branchname>:main
remote:  !
remote:  ! This article goes into details on the behavior:
remote:  !   https://devcenter.heroku.com/articles/duplicate-build-version
remote: 
remote: Verifying deploy...
remote: 
remote: !   Push rejected to tesda8app.

Я не знаю, почему эта ошибка произошла. У меня есть два удаленных репозитория, в которые я загружаю свой код, один из Heroku и один в Github. Я попробовал приведенную ниже команду на основе ответа на этот вопрос, Heroku: если вы разрабатываете ветку и развертываете через git, вы должны запустить:

git push heroku master:main

Но все равно ошибка сохраняется. Есть ли какая-нибудь команда, которую я мог бы попробовать в интерфейсе командной строки Heroku для решения этой проблемы?


person Donato Amasa    schedule 22.12.2020    source источник
comment
Это просто предупреждение. Фактическая ошибка выше этого. Пожалуйста, отредактируйте свой вопрос и покажите нам приведенные выше сообщения об ошибках.   -  person Chris    schedule 22.12.2020
comment
привет Крис спасибо за указание на это. я уже обновил журналы ошибок   -  person Donato Amasa    schedule 23.12.2020
comment
Я не думаю, что это целое сообщение. Пожалуйста, добавьте все это.   -  person Chris    schedule 23.12.2020
comment
привет @Chris обновил журналы. это все сообщение об ошибке, которое я получил   -  person Donato Amasa    schedule 28.12.2020


Ответы (3)


После нескольких попыток я подумал, что причиной проблемы, возможно, была прерванная команда git push heroku master, которая затем была продолжена повторным выполнением той же команды, что привело к следующей ошибке:

remote:  !     Push failed
remote:  !
remote:  ! ## Warning - The same version of this code has already been built:             31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote:  !
remote:  ! We have detected that you have triggered a build from source code with version 31199a7acec03a3cb614ebaaf6c7720cee6684bd
remote:  ! at least twice. One common cause of this behavior is attempting to deploy         code     from a different branch.
remote:  !

Итак, что я сделал, так это отправил еще одну фиксацию, а затем повторил ту же команду git push heroku master, что привело к успешному развертыванию.

Кроме того, приветствую ответ и идеи RainXCat, теперь я знаю, что Heroku не позволяет использовать два репозитория git в одном каталоге/папке.

person Donato Amasa    schedule 28.12.2020

У меня была такая же ошибка в тот же день, что и у вас, я не знаю, тот ли это ответ, который вы ищете, но я каким-то образом решил проблему. Я делал Django-Rest-Api.

ПРИЧИНА

вы создали два репозитория git в одной и той же папке/каталоге и вставили в их голову один и тот же код, и почему-то Heroku не хочет, чтобы вы это делали. помните, что нет двух репозиториев git на одном уровне.

насчет git push heroku master:main дела

Heroku развертывает ваш код только из основной/ведущей ветки, поэтому, если вы отправляете не из основной ветки, вы должны использовать его как git push heroku <new branch>:main, использование :main с master бессмысленно (то же самое).

РЕШЕНИЕ

вариант 1 (у меня не работает)

Я точно не помню, откуда я это взял, но вам нужно создать новую ветку git, сделайте

git branch <new branch>
git checkout <new branch>
git add .
git commit -am "commit message"
git push heroku <new branch>:main

но это дает ту же ошибку, потому что у вас все еще есть два репозитория git в вашем каталоге.

вы можете удалить репо следующим образом.

rm -rf .git

Предлагаю вам провести эксперимент на временной копии.

вариант 2 (у меня работает)

Все, что я сделал, это скопировал все файлы внутри, создал новую папку с другим именем, вставил все файлы, удалил старый и переименовал новый в старый. сделав это, у вас будет бесплатный каталог git, после чего вы сможете использовать метод git init, чтобы просто создать новое репо.

вот как вы должны создать

git init
heroku create
git add .
git commit -am "initial commit"
git push heroku master

Это должно устранить ошибку. Она решена для меня, поэтому маловероятно, что я буду работать над ней больше, но если мой ответ каким-либо образом неверен, пожалуйста, сообщите мне.

person RainXCat    schedule 24.12.2020

Установите интерфейс командной строки Heroku Загрузите и установите интерфейс командной строки Heroku.

Если вы еще этого не сделали, войдите в свою учетную запись Heroku и следуйте инструкциям, чтобы создать новый открытый ключ SSH.

$ heroku login

Клонирование репозитория Используйте Git для клонирования исходного кода проектов на локальный компьютер.

$ heroku git:clone -a project







$ cd project

Разверните свои изменения Внесите некоторые изменения в код, который вы только что клонировали, и разверните их на Heroku с помощью Git.

$ git add .
$ git commit -am "make it better"
$ git push heroku master
person Khushi Pitroda    schedule 11.07.2021