从基本父pom继承Spring Boot依赖关系导致cf push命令对于我的应用程序失败

时间:2018-08-22 21:13:42

标签: java maven spring-boot pom.xml cloudfoundry

我的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应用程序吗?

2 个答案:

答案 0 :(得分:0)

一般情况下的操作顺序应如下所示

  1. 组装要推送的工件

    mvn clean package在您的项目目录下

  2. 推送工件

    cf push yourAppName -p target/your-hello-world-1.0.0-SNAPSHOT.jar在同一目录下

忘记指定工件为typical pitfall for beginners

  1. 故障排除

    • 如果您期望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