java Spring引导构建正常,但Heroku部署失败
我广泛地查找了这个问题,没有找到有用的答案。我正试着和Heroku一起部署this API。这是一个预先存在的GitHub存储库,我遵循了Heroku的devcenter指南。我尝试通过Git和Heroku Maven插件进行部署,结果是一样的:我可以在本地构建它,一切都很好,但当我cd到~/workspace/API/myapi/
并尝试将其推到Heroku时,我得到:
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
李>- 你可以在 上面链接了存储库李>
我错过了什么? 如果你需要更多信息,请告诉我。提前谢谢
# 1 楼答案
看起来项目目录的根目录中有一个
mvnw
文件,但缺少Maven wrapper所需的其他文件。它们通常位于应用程序的.mvn/wrapper
目录中。你可能已经删除了它们你有两个选择:
mvnw
和mvnw.cmd
mvn -N io.takari:maven:0.7.7:wrapper
我会选择第二种。通常,最好使用包装器,以确保项目以预期的Maven版本运行