【问题标题】:Scala Play 2.3.5 - Coveralls sbt plugin java.io.IOException: Unable to download JavaScriptScala Play 2.3.5 - Coveralls sbt 插件 java.io.IOException:无法下载 JavaScript
【发布时间】:2014-11-21 18:07:51
【问题描述】:

我目前正在尝试使用 travis、heroku 和 coveralls sbt 插件设置一个 play scala 项目构建链以进行代码覆盖。 我用激活器创建了一个干净的 scala play 应用程序,并添加了工作服插件和一个 travis.yml。

当我推送我的项目并触发构建时,我在 travis 运行测试时收到以下异常:

[error] c.g.h.h.HtmlPage - Error loading JavaScript from [http://localhost:19001/assets/javascripts/hello.js].
java.io.IOException: Unable to download JavaScript from 'http://localhost:19001/assets/javascripts/hello.js' (status 404).
  at com.gargoylesoftware.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1106) ~[htmlunit-2.13.jar:2.13]
  at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1039) ~[htmlunit-2.13.jar:2.13]
  at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:409) [htmlunit-2.13.jar:2.13]
  at com.gargoylesoftware.htmlunit.html.HtmlScript$3.execute(HtmlScript.java:266) [htmlunit-2.13.jar:2.13]
  at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:286) [htmlunit-2.13.jar:2.13]

我发现这个旧主题 (https://groups.google.com/forum/#!topic/play-framework/yj4NT3BO0Os) 有相同的错误消息,但不幸的是那里的解决方案都不适合我。

这里有没有人使用工作服或知道我的问题的解决方案?我已经附上了所有的配置文件。

build.sbt

import scoverage.ScoverageSbtPlugin.instrumentSettings
import org.scoverage.coveralls.CoverallsPlugin.coverallsSettings

name := """buildchain"""

version := "1.0-SNAPSHOT"

scalaVersion := "2.11.1"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws
)

instrumentSettings

CoverallsPlugin.coverallsSettings

ScoverageKeys.minimumCoverage := 1

ScoverageKeys.failOnMinimumCoverage := true

plugins.sbt:

resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

resolvers += Classpaths.sbtPluginReleases

// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.5")

// web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.0.0")

// code coverage
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "0.99.7.1")

addSbtPlugin("org.scoverage" %% "sbt-coveralls" % "0.99.0")

travis.yml

language: scala
scala:
  - 2.11.2
script: "sbt coveralls"
notifications:
  email: false

【问题讨论】:

    标签: scala playframework playframework-2.3 coveralls


    【解决方案1】:

    问题出在 sbt-scoverage 上,已在 1.0.0 版中修复。请注意,您必须更新使用插件的方式,因此请参阅自述文件中的设置指南。

    https://github.com/scoverage/sbt-scoverage

    【讨论】:

      【解决方案2】:

      错误表明您收到 HTTP 404(未找到)错误:

      java.io.IOException: Unable to download JavaScript from 'http://localhost:19001/assets/javascripts/hello.js' (status 404)
      

      所以我认为这不是您的工具的问题,而只是一个简单的老“未找到”问题。 您的项目中有 assets/javascripts/hello.js 文件吗?

      【讨论】:

      • 是的,我的资产文件夹中有一个 hello.js。它是一个 100% 原创的 scala play 应用程序。我认为当时路由无法正常工作,wenn 工作服试图打开资产文件...
      • 在这种情况下,我也会怀疑路由。我注意到您没有使用 sbt-web 插件。你应该在你的 plugins.sbt 文件中有类似的东西: addSbtPlugin("com.typesafe.sbt" % "sbt-web" % "1.1.1") 并添加: .enablePlugins(SbtWeb) 到你的根项目val .
      • PlayScala 已添加,因此应该足够了。似乎更像是集成测试中的问题。
      【解决方案3】:

      这似乎是 sbt-scoverage 插件和播放的问题。希望以后能解决这个问题……

      https://github.com/scoverage/sbt-scoverage/issues/52

      【讨论】:

        猜你喜欢
        • 2015-08-13
        • 2021-03-09
        • 2020-01-22
        • 2017-07-29
        • 2013-05-24
        • 2018-05-15
        • 2014-07-12
        • 2018-12-30
        • 1970-01-01
        相关资源
        最近更新 更多