#java #git #spring-boot #maven #heroku
#java #git #spring-boot #maven #heroku
Вопрос:
Я тщательно изучил это и не нашел полезного ответа. Я пытаюсь развернуть этот API с помощью Heroku. Это уже существующий репозиторий GitHub, я следовал рекомендациям Heroku devcenter. Я попытался выполнить развертывание с помощью Git и плагина Heroku Maven, и результат тот же: я могу создать его локально, и все в порядке, но когда я подключаюсь к cd ~/workspace/API/myapi/
и пытаюсь передать его в Heroku git push heroku main:main
, я получаю:
Enumerating objects: 237, done.
Counting objects: 100% (237/237), done.
Delta compression using up to 4 threads
Compressing objects: 100% (179/179), done.
Writing objects: 100% (237/237), 91.06 KiB | 4.14 MiB/s, done.
Total 237 (delta 61), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Java app detected
remote: -----> Installing JDK 11... done
remote: -----> Executing Maven
remote: $ ./mvnw -DskipTests clean dependency:list install
remote: ./mvnw: 219: ./mvnw: cannot open /tmp/build_f4dfb6d1/API/myapi/.mvn/wrapper/maven-wrapper.properties: No such file
remote: /tmp/build_f4dfb6d1/API/myapi/.mvn/wrapper/maven-wrapper.jar: No such file or directory
remote: Error: Could not find or load main class org.apache.maven.wrapper.MavenWrapperMain
remote: Caused by: java.lang.ClassNotFoundException: org.apache.maven.wrapper.MavenWrapperMain
remote:
remote: ! ERROR: Failed to build app with Maven
remote: We're sorry this build is failing! If you can't find the issue in application code,
remote: please submit a ticket so we can help: https://help.heroku.com/
remote:
remote: ! Push rejected, failed to compile Java app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to myapiheroku.
remote:
To https://git.heroku.com/cashonlineheroku.git
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/myapiheroku.git'
/home/myuser/workspace/API/myapi/.mvn/wrapper/
содержит файлы
maven-wrapper.jar
,maven-wrapper.properties
и
MavenWrapperDownloader.java
./home/myuser/workspace/API/myapi/system.properties
указывает
java.runtime.version=11
./home/myuser/.m2/repository/ar/com/api/myapi/
содержит
myapi.0.0.1-SNAPSHOT.jar
.- Вы можете найти
pom.xml
,application.properties
, и т.д. в репозитории, указанном выше.
Чего мне не хватает? Дайте мне знать, если вам нужна дополнительная информация. Заранее спасибо!
Комментарии:
1. Вывод показывает, что Heroku считает, что вы используете оболочку Maven для своего проекта. У вас есть
mvnw
файл в вашем проекте? Является ли оно исполняемым?2. В /home/myuser/workspace/API/myapi/ есть два таких файла:
mvnw
иmvnw.cmd
Ответ №1:
Похоже, что у вас есть mvnw
файл в корне каталога вашего проекта, но отсутствуют другие файлы, требуемые оболочкой Maven. Обычно они находятся в .mvn/wrapper
каталоге вашего приложения. Возможно, вы их удалили.
У вас есть два варианта:
- Также удалите другие файлы для оболочки Maven:
mvnw
иmvnw.cmd
- Переустановите недостающие файлы для оболочки Maven:
mvn -N io.takari:maven:0.7.7:wrapper
Я бы выбрал вариант 2. Обычно предпочтительнее использовать оболочку, чтобы убедиться, что ваш проект выполняется с ожидаемой версией Maven.
Комментарии:
1. Вариант 2 сработал как шарм! большое вам спасибо.