为什么我的Bluemix devops管道的部署阶段找不到在构建阶段创建的WAR文件?

时间:2018-03-10 00:30:09

标签: ibm-cloud websphere-liberty continuous-delivery

我有一个在我的本地Liberty服务器(Eclipse IDE)上运行良好的Java应用程序。我尝试使用Continuous Delivery管道将此应用程序部署到Bluemix Liberty服务器。该应用程序使用Maven构建器,构建阶段成功完成。以下是构建日志中的最后几行:

[INFO] Packaging webapp
[INFO] Assembling webapp [CPE2x] in [/home/pipeline/0102a7d2-42b8-42a4-98be-0481cd6d5293/target/CPE2x-1.0.0]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/pipeline/0102a7d2-42b8-42a4-98be-0481cd6d5293/src/main/webapp]
[INFO] Webapp assembled in [144 msecs]
[INFO] Building war: /home/pipeline/0102a7d2-42b8-42a4-98be-0481cd6d5293/target/CPE2x-1.0.0.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 28.863 s
[INFO] Finished at: 2018-03-10T00:09:47+00:00
[INFO] Final Memory: 38M/74M
[INFO] ------------------------------------------------------------------------

但是,部署阶段会立即失败,因为它无法找到在构建阶段创建的 .war 文件。以下是整个部署日志:

Preparing to start the job...
Logging into Bluemix as user: "jimh@customer.com" 
Cloning the 'master' branch from repo 'https://git.ng.bluemix.net/jimh1/CPE_2x.git'
Repository successfully cloned
Target: https://api.ng.bluemix.net
Using manifest file /home/pipeline/e3050545-ef30-47f9-9cae-f2700d8d5431/manifest.yml

Updating app CPE_2x in org MyOrg / space dev as jimh@cogability.com...
OK

Using route CPE_2x.mybluemix.net
FAILED
Error processing app files: lstat /home/pipeline/e3050545-ef30-47f9-9cae-f2700d8d5431/target/CPE2x-1.0.0.war: no such file or directory

Finished: FAILED

明显的区别在于.war的路径,但我不知道这是否是真正的问题,或者它是否是构建/部署过程的工件。路径中的长目录名称会在每次尝试时发生变化,因此我倾向于认为它是一个红色的鲱鱼。在任何一种情况下,我都无法超越这一点。

我已经为Bluemix构建并部署了许多Node.js项目,但这是我的第一个Liberty for Java应用程序。

2 个答案:

答案 0 :(得分:0)

您可以在选择CICD之前执行一些增量步骤:(仅当您尚未这样做时)

  1. 直接推送应用程序。并检查您是否可以到达终端。
  2. 如果构建中存在任何问题,那么您可以尝试将服务器与war一起打包并进行部署。并检查您是否可以到达终端。
  3. 如果所有这些都很好,那么请选择CICD管道。如果上述两项工作CICD应该可以正常工作。
  4. 希望它有所帮助。

答案 1 :(得分:0)

我仍然不知道为什么会发生这个错误,但我确实找到了摆脱它的方法。我在交付管道的同一阶段同时拥有构建作业和部署作业。我将 deploy 作业移到了另一个阶段,错误消失了(现在出现了不同的错误,但至少它已经过了这个错误。)

为什么我不能将它们放在同一个舞台上对我来说仍然是一个谜。