0

我想将一个 PlayFramework 应用程序集成到IBM Bluemix Delivery Pipeline服务中。当我在构建阶段创建新作业时,我有一个受支持的构建器类型列表:

生成器类型

Play 应用程序使用 SBT 进行构建,但它不在列表中。如果我使用“Shell Script”选项并调用某些sbt命令,则作业显然会失败,并显示错误消息“sbt: command not found”。

有什么方法可以在执行构建的环境中安装 sbt?

4

1 回答 1

1

首先,介绍一下使用持续交付运行管道作业时会发生什么的背景知识。您在作业配置的自定义脚本字段中放置的所有内容都将在新容器上执行。此容器在作业执行时使用 IBM 提供的基本映像启动。任何未包含在所述基本映像中的内容在您的管道作业中都将不可用,至少不是开箱即用。

现在,由于所述基本映像不包含 SBT,因此您必须下载它并将其手动添加到您的 PATH 中。以下是您可以用来执行此操作的脚本。

#!/bin/bash
wget --output-document=/tmp/sbt.tgz https://github.com/sbt/sbt/releases/download/v1.0.0/sbt-1.0.0.tgz
tar -xvf /tmp/sbt.tgz --directory=/tmp
export PATH="/tmp/sbt/bin:$PATH"
chmod +x /tmp/sbt
// Run sbt commands below here

注意:我不熟悉 SBT 及其配置方式,但您可能需要使用容器上的 Java 运行时来支持您使用 SBT 的 scala 版本。包括 Java7 和 8,其中 7 是默认值。要切换到 Java8,您可以在作业脚本中包含以下内容:

#!/bin/bash
export JAVA_HOME=$JAVA8_HOME
export PATH="$JAVA_HOME/bin/:$PATH"
java -version # Verify that we are using java8 runtime
于 2017-08-21T20:34:00.947 回答