【问题标题】:Bluemix Build & Deploy pipeline does not work with MavenBluemix Build & Deploy 管道不适用于 Maven
【发布时间】:2015-06-17 13:14:33
【问题描述】:

我正在尝试使用 MAVEN 在 Bluemix 中创建一个部署管道,而 Deploy 阶段总是错过前一阶段(构建阶段)中生成的工件,即它永远找不到 .war 包,有什么想法吗?日志如下。

构建:

[INFO] 打包 webapp [INFO] 组装 webapp [MyWebAppInBluemix] 在 [/home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272/target/MyWebAppInBluemix] [INFO] 处理战争项目 [INFO] 复制 webapp webResources [/home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272/src/main/webapp/WEB-INF] 到 [/home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272/target/MyWebAppInBluemix] [INFO] 复制 webapp 资源 [/home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272/src/main/webapp] [信息] 建筑罐子: /home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272/target/MyWebAppInBluemix/WEB-INF/lib/MyWebAppInBluemixBlueMix-1.0-SNAPSHOT.jar [INFO] Webapp 在 [838 毫秒] 内组装 [INFO] 构建战争: /home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272/target/MyWebAppInBluemix.war [信息] -------------------------------------------------- ---------------------- [信息] 构建成功 [信息] -------------------------------------------------- ---------------------- [INFO] 总时间:44.417 s [INFO] 完成时间: 2015-04-12T00:48:18+00:00 [INFO] 最终内存:21M/36M [INFO] -------------------------------------------------- ---------------------- /home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/86d18f86-4ade-4e02-8282-171dc9757272 ..上传工件...上传成功总时间:11秒 完成:成功

部署:

由用户管道开始远程构建 jenkins-deploy-slave-fe1b25615459 (.*Deploy) 在工作区 /home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/6f0d5c28-555a-4d9e-8207-7e5dfa978bbc 无法访问上游工件区域 /opt2/jenkins/jobs/9b24c823-cdb0-2f05-7588-80df3afc1131/jobs/86d18f86-4ade-4e02-8282-171dc9757272/builds/2015-04-11_19-47-24/archive。 源项目是否归档工件?正在下载工件... 下载成功总时间:11秒...

++ cf push MyWebAppInBluemix 在 org marcelo@mail.com / 空间中更新应用程序 MyWebAppInBluemix 开发为 marcelo@mail.com... OK

正在上传 MyWebAppInBluemix... 正在从以下位置上传应用程序文件: /home/jenkins/workspace/9b24c823-cdb0-2f05-7588-80df3afc1131/6f0d5c28-555a-4d9e-8207-7e5dfa978bbc 上传 47.9M,169 个文件

                          Done uploading OK

在 org marcelo@mail.com / 空间中停止应用程序 MyWebAppInBluemix 开发为 marcelo@mail.com... 好的

在 org marcelo@mail.com / 空间中启动应用程序 MyWebAppInBluemix 开发为 marcelo@mail.com... -----> 下载的应用程序包(85M) -----> 下载的应用构建包缓存(1.4M)

FAILED 服务器错误,状态代码:400,错误代码:170003,消息:An 任何可用的构建包都没有成功检测到应用程序

提示:使用“cf logs MyWebAppInBluemix --recent”获取更多信息 构建步骤“执行 shell”将构建标记为失败 Finished: FAILURE

【问题讨论】:

    标签: java maven war ibm-cloud


    【解决方案1】:

    看起来您的构建任务正在构建 git 项目的基本目录中的 war 文件,而部署作业正在存档目录中查找它。

    您可以通过修改构建或部署作业以查看 war 文件的基本目录或存档目录来解决此问题。

    【讨论】:

    • 我在 manifest.yml 中进行了调整以使用“path: target/MyWebAppInBluemix.war”(不确定这是否与解决方案有关),仔细检查了 Build Stage 配置以查看是否Build Archive Directory 确实设置为“target”,在 Deploy Stage 命令框中注入了一个“pwd”和一个“ls -ilha”,我意识到 .war 已经出现在那里并且部署开始工作。感谢杰夫的帮助!
    • 我还在 push 命令中明确指出了包:cf push MyWebAppInBluemix -p MyWebAppInBluemix.war
    【解决方案2】:

    在构建作业配置中,“构建存档目录”描述了一个相对于工作目录的目录,用于在作业结束时保存工件。工件将保存在与“构建存档目录”相同的结构中。 请注意,如果构建存档目录留空,则默认为工作目录。 如果工作目录留空,则默认为项目的根目录。

    当构建用作下游阶段的输入时,下游阶段中的所有作业(例如,部署)都将引用来自构建的工件,它们存储在相同的结构中。 查看此结构的最佳方法是单击特定构建,然后单击 ARTIFACTS 选项卡。此选项卡上显示的工件将以与部署作业显示的完全相同的结构引用。

    【讨论】:

      【解决方案3】:

      我在尝试将 NodeJS 推送到 Bluemix 时收到了类似的错误。

      FAILED Server error, status code: 400, error code: 170003, message: An app was not successfully detected by any available buildpack

      当推送您的应用程序所需的文件不存在时,似乎会发生此错误。例如,如果您或您的脚本没有从应用程序目录推送,或者您的目录中还有其他应用程序,则您的应用程序的错误文件将被推送。我的目录结构如下:

      /workspace/app1 /workspace/bluemix-node-mysql-uploader-master5 #my nodejs app

      我正在从以下位置调用 CF 推送命令:

      /workspace/cf push bluemix-node-mysql-uploader-master5

      这给了我同样的错误。我通过从应用程序目录推送它可以找到 manifest.yml 文件来纠正这个问题。使用这个命令一切都很好:

      /workspace/bluemix-node-mysql-uploader-master5/cf push bluemix-node-mysql-uploader-master5

      【讨论】:

        【解决方案4】:

        如果您没有构建管道,您可以使用此命令推送到 cf

        cf push app-name -p target/app-name.jar

        当您将此行添加到部署配置时,它不起作用。因此,当我删除目标并再次尝试时,它通过了部署阶段。所以应该是下面这行。

        cf push app-name -p app-name.jar

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-23
          • 1970-01-01
          • 1970-01-01
          • 2013-02-26
          • 2020-06-11
          • 1970-01-01
          • 2017-05-08
          • 2021-12-24
          相关资源
          最近更新 更多