【问题标题】:Playframework 2.1-RC4: running tests on dev@cloud using sbtPlayframework 2.1-RC4:使用 sbt 在 dev@cloud 上运行测试
【发布时间】:2013-01-22 12:37:37
【问题描述】:

我正在尝试设置一个 Jenkins 任务,该任务会定期检查 play 2.1-rc4 项目并执行在您进行“游戏测试”时正常运行的所有任务。

我们的 Jenkins 安装托管在 cloudbees (dev@cloud) 上。

我安装了 Jenkins sbt 插件并将其配置为指向 sbt 的有效副本(我认为是 .11.?)。在我的构建中,我运行了一个 sbt 测试,当前目录设置为 play 项目的根目录。

我的理解是,sbt 会因为项目下的 build.properties 文件而将自身更新为 .12,下载并安装 play sbt 插件,解决所有依赖关系,然后执行测试。

但是,sbt 无法解析 play sbt 插件:

注意:一些未解决的依赖项有额外的属性。检查这些依赖项是否与请求的属性一起存在。

警告播放:sbt-plugin:2.1-RC4 (sbtVersion=0.11.3, scalaVersion=2.9.1)

scala 和 sbt 版本属性似乎错误(play 2.1 使用 sbt .12)...我一直在尝试拼凑 play、sbt 和 Jenkins 如何一起玩,并有几个问题:

  1. 如果 build.properties 需要更新版本,sbt .11 是否会为当前构建即时更新自身?
  2. play sbt 插件(在 plugins.sbt 中加载)为 sbt 添加了哪些功能?我可以用“纯”sbt 替换它吗?
  3. sbt.boot.properties 和 play 的 framework/sbt/boot 目录是干什么用的?当 play 运行 sbt 时,它会将 -Dsbt.boot.properties 设置为 framework/sbt 目录中的启动属性文件。该文件定义了一些存储库和 scala 版本等。在这个 sbt 目录中,有一个名为“boot”的子目录。在其中,有一个目录树,其中包含大量的 jar。这些引导材料是什么?它似乎没有包含在主要的 sbt 文档中。我的猜测是它与加载 sbt 本身有关(解决 sbt 的任何必要的 deps 等)
  4. 是否有人让 dev@cloud 正确执行 play 2.1-rc4 测试?如果是这样,您是如何设置的?

【问题讨论】:

    标签: playframework jenkins sbt cloudbees playframework-2.1


    【解决方案1】:

    我们的 slave 上还没有 0.12,但是我(和其他人)所做的是使用 https://github.com/paulp/sbt-extras 来引导 sbt。您只需将 sbt 启动脚本复制到项目的根目录,然后在 jenkins 中调用 ./sbt。

    play sbt 插件纯粹是为了部署到 run@cloud,如果你只是在做测试就不需要它。

    【讨论】:

    • 你是指Cloudbees play插件还是Play的sbt插件?
    【解决方案2】:

    我最终采取了稍微不同的方法。

    我能够在 cloudbees jenkins slave 上使用旧版本的 SBT 执行大多数播放命令。将较新的版本上传到暂存空间并使用它可能会加快速度,但 sbt .11 bootstraps .12.2 很好。

    非常简单的两步演练:

    1. 在 jenkins config 中配置 SBT
    2. 在构建中添加“使用 sbt 构建”步骤
      • JVM 标志:-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M
      • sbt 标志:-Dsbt.log.noformat=true -Dconfig.file=ifnecessary
      • actions: "project PROJECT_NAME" clean compile test(或其他)

    潜在的陷阱/注意事项:

    • 在某些情况下,所有引导似乎都在我的工作空间的根目录中创建了一个“.sbt”目录。然后 Sbt 假设这是项目目录并选择它而不是 play 的项目目录。 (它会抛出关于使用旧目录布局的警告,但不会忽略它。)“project blah”(引号中)确保 sbt 使用正确的项目配置
    • JVM 标志:我从其中一个 play 构建脚本中获取了这些...我不知道哪些可以忽略
    • sbt 标志:您似乎可以在此处或在 jvm 标志部分中传递诸如 config.file 之类的播放环境变量。
    • 使用安装在 cloudbees 从属服务器上的默认 sbt 版本,在构建时似乎有一堆引导。我想将最新版本的 sbt 安装到您的暂存空间并使用它会缩短构建时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-26
      • 2023-03-20
      • 2023-03-18
      • 2017-10-24
      • 2012-01-07
      • 1970-01-01
      • 2017-07-07
      • 2013-12-29
      相关资源
      最近更新 更多