我的Spring Boot应用程序的pom.xml非常小。我的父标签指向我的公共pom应用程序,而公共pom是保存所有Spring Boot依赖项的内容。我可以清理,编译,打包和运行应用程序而没有任何错误,但是当我尝试运行cf push时,出现以下错误:
[ERR] [Buildpack] ERROR Finalize failed with exception #<RuntimeError: No container can run this application. Please ensure that you've pushed a valid JVM artifact or artifacts using the -p command line argument or path manifest entry. Information about valid JVM artifacts can be found at https://github.com/cloudfoundry/java-buildpack#additional-documentation.
我正在查看cf java-buildpack的文档,看来我的应用程序未通过Spring Boot容器检测。我需要添加一些东西到我的应用程序的pom文件中,以便buildpack将其识别为有效的Spring Boot应用程序吗?
答案 0 :(得分:0)
一般情况下的操作顺序应如下所示
组装要推送的工件
mvn clean package
在您的项目目录下
推送工件
cf push yourAppName -p target/your-hello-world-1.0.0-SNAPSHOT.jar
在同一目录下
忘记指定工件为typical pitfall for beginners
故障排除
如果您期望Spring Boot Container拿起工件,请确保您的工件(即your-hello-world-1.0.0-SNAPSHOT.jar
)包含Spring Boot jar-lib/spring-boot-.*.jar
,因为这是检测到的东西标准。并且,如果您使用Spring Boot Maven插件,请确保已将其重新包装的目标设置在as described here
如果仍然没有运气,或者您想要更多可配置的Tomcat Container来处理工件-change packaging to war甚至切换到deployable war
答案 1 :(得分:0)
由于spring-boot-maven-plugin出现了问题。重新打包解决了我的问题。
https://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html