如何解决将Spring Boot应用程序部署到Heroku时出错
将Spring Boot应用程序部署到Heroku时遇到问题。
- 我正在尝试将其部署为Java应用程序,而不是构建和部署jar文件。
- 我在Heroku中使用了免费的Postgresql。
将应用程序推送到Heroku master时出错:
remote: [INFO] Changes detected - recompiling the module!
remote: [INFO] Compiling 18 source files to /tmp/build_79201803/target/classes
remote: [INFO] -------------------------------------------------------------
remote: [ERROR] COMPILATION ERROR :
remote: [INFO] -------------------------------------------------------------
remote: [ERROR] /tmp/build_79201803/src/main/java/com/pukitbanta/springblog/model/post.java:[15,8] class Post is public,should be declared in a file named Post.java
remote: [ERROR] /tmp/build_79201803/src/main/java/com/pukitbanta/springblog/model/user.java:[12,8] class User is public,should be declared in a file named User.java
remote: [INFO] 2 errors
remote: [INFO] -------------------------------------------------------------
remote: [INFO] ------------------------------------------------------------------------
remote: [INFO] BUILD FAILURE
remote: [INFO] ------------------------------------------------------------------------
remote: [INFO] Total time: 16.300 s
remote: [INFO] Finished at: 2020-08-11T11:09:38Z
remote: [INFO] ------------------------------------------------------------------------
remote: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project springblog: Compilation failure: Compilation failure:
remote: [ERROR] /tmp/build_79201803/src/main/java/com/pukitbanta/springblog/model/post.java:[15,should be declared in a file named User.java
remote: [ERROR] -> [Help 1]
remote: [ERROR]
remote: [ERROR] To see the full stack trace of the errors,re-run Maven with the -e switch.
remote: [ERROR] Re-run Maven using the -X switch to enable full debug logging.
remote: [ERROR]
remote: [ERROR] For more information about the errors and possible solutions,please read the following articles:
remote: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
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:
这里的错误表明我的User
和Post
模型文件名以小写字母开头。
但是我的文件结构是:
我认为模型中没有错误,并且无法找出问题所在。
解决方法
在屏幕快照中,文件名以大写字母开头,但是
remote: [ERROR] /tmp/build_79201803/src/main/java/com/pukitbanta/springblog/model/post.java:[15,8] class Post is public,should be declared in a file named Post.java
remote: [ERROR] /tmp/build_79201803/src/main/java/com/pukitbanta/springblog/model/user.java:[12,8] class User is public,should be declared in a file named User.java
错误消息中显示的文件名小写。
请再次检查小写字母。如果它们是小写字母,请按以下步骤更正它们:
- 将
post.java
重命名为Post.java
- 将
user.java
重命名为User.java
如果重命名这些文件没有意义,则可能是您的Git设置存在问题。
请参阅:https://stackoverflow.com/a/46670520/1979953
这是一个区分大小写的问题。问题是我不知道GIT不在文件中寻找区分大小写的更改。
您可以检查自己的git配置:
$ git config -l | grep ignorecase
core.ignorecase
是我们这次需要的。
如果core.ignorecase
是true
,Git将忽略大小写差异;如果false
,Git将识别出差异。因此,您需要设置false
。
然后让Git识别更改并将其再次部署到Heroku。
要将core.ignorecase更新为true
或false
,请运行:
git config core.ignorecase true
或
git config core.ignorecase false
。
我通过将 java 版本 11 更改为 8(在 pom.xml 中)解决了我的问题。
来自:
<properties>
<java.version>11</java.version>
</properties>
致:
<properties>
<java.version>8</java.version>
</properties>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。