Scala sbt codacy coverage无法从Travis CI上载数据

Scala sbt codacy coverage无法从Travis CI上载数据,scala,sbt,travis-ci,codacy,Scala,Sbt,Travis Ci,Codacy,我已经与Travis CI和Codacy集成建立了一个Scala/SBT项目。这些数据源在以下位置可见 我希望能够在Codacy中查看代码覆盖率报告,因此我添加了以下SBT插件: addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.0") addSbtPlugin("com.codacy" % "sbt-codacy-coverage" % "1.3.7") 我可以通过以下命令将覆盖率数据上传到Codacy: export CODACY_

我已经与Travis CI和Codacy集成建立了一个Scala/SBT项目。这些数据源在以下位置可见

我希望能够在Codacy中查看代码覆盖率报告,因此我添加了以下SBT插件:

addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.0")
addSbtPlugin("com.codacy" % "sbt-codacy-coverage" % "1.3.7")
我可以通过以下命令将覆盖率数据上传到Codacy:

export CODACY_PROJECT_TOKEN=<my token>
sbt clean coverage test
sbt coverageReport
sbt coverageAggregate
sbt codacyCoverage
但是在Travis CI构建日志中,我看到
codacyCoverage
失败,并且
java.lang.RuntimeException:无法上传数据。原因:找不到请求处理程序:/2.0/coverage//scala

[info] Loading project definition from /home/travis/build/guilgaly/itunes-dap-sync/project
[info] Set current project to itunes-dap-sync (in build file:/home/travis/build/guilgaly/itunes-dap-sync/)
[info] Defining {.}/*:javaHome
[info] The new value will be used by *:compilers, *:console::compilers and 6 others.
[info]  Run `last` for details.
[info] Reapplying settings...
[info] Set current project to itunes-dap-sync (in build file:/home/travis/build/guilgaly/itunes-dap-sync/)
[info] Uploading coverage data...
java.lang.RuntimeException: Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala
    at scala.sys.package$.error(package.scala:27)
    at com.codacy.CodacyCoveragePlugin$$anonfun$7.apply(CodacyCoveragePlugin.scala:79)
    at com.codacy.CodacyCoveragePlugin$$anonfun$7.apply(CodacyCoveragePlugin.scala:64)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1$$anonfun$apply$2.apply(FileHelper.scala:21)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1$$anonfun$apply$2.apply(FileHelper.scala:19)
    at scala.Option.map(Option.scala:145)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1.apply(FileHelper.scala:19)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1.apply(FileHelper.scala:18)
    at com.codacy.api.helpers.FileHelper$$anonfun$withCommit$2.apply(FileHelper.scala:34)
    at com.codacy.api.helpers.FileHelper$$anonfun$withCommit$2.apply(FileHelper.scala:33)
    at scala.Option.map(Option.scala:145)
    at com.codacy.api.helpers.FileHelper$.withCommit(FileHelper.scala:33)
    at com.codacy.api.helpers.FileHelper$.withTokenAndCommit(FileHelper.scala:18)
    at com.codacy.CodacyCoveragePlugin$.com$codacy$CodacyCoveragePlugin$$codacyCoverageCommand(CodacyCoveragePlugin.scala:64)
    at com.codacy.CodacyCoveragePlugin$AutoImport$$anonfun$baseSettings$2.apply(CodacyCoveragePlugin.scala:31)
    at com.codacy.CodacyCoveragePlugin$AutoImport$$anonfun$baseSettings$2.apply(CodacyCoveragePlugin.scala:30)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] (*:codacyCoverage) Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala
你知道是什么导致了这个问题吗,在Travis CI构建中可见,但在我的本地SBT构建中不可见

注:


java.lang.RuntimeException:无法上载数据。原因:找不到请求处理程序:/2.0/coverage//scala

scala的路径似乎有问题

我想我在这里发现了问题:


我认为您尚未设置
commituid
env变量

,看起来这是正确的研究方向。但是检查时,它应该返回到使用
TRAVIS\u COMMIT
变量(或者
TRAVIS\u PULL\u REQUEST\u SHA
,如果在PULL请求的情况下可用),因此它应该按原样工作(
TRAVIS\u COMMIT
似乎设置正确)。我将打开一个关于sbt codacy coverage的问题,我们将看到…您是否尝试在构建中回显这些环境变量,只是为了确认它们是否正确设置?是的,我添加了一些回显命令
CI\u COMMIT
TRAVIS\u PULL\u REQUEST\u SHA
似乎未设置,但
TRAVIS\u COMMIT
似乎包含提交哈希。注意:问题已通过解决。版本1.3.8()解决了这个问题。问题是Travis添加了带有空值的环境变量,而插件没有丢弃这些环境变量
[info] Loading project definition from /home/travis/build/guilgaly/itunes-dap-sync/project
[info] Set current project to itunes-dap-sync (in build file:/home/travis/build/guilgaly/itunes-dap-sync/)
[info] Defining {.}/*:javaHome
[info] The new value will be used by *:compilers, *:console::compilers and 6 others.
[info]  Run `last` for details.
[info] Reapplying settings...
[info] Set current project to itunes-dap-sync (in build file:/home/travis/build/guilgaly/itunes-dap-sync/)
[info] Uploading coverage data...
java.lang.RuntimeException: Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala
    at scala.sys.package$.error(package.scala:27)
    at com.codacy.CodacyCoveragePlugin$$anonfun$7.apply(CodacyCoveragePlugin.scala:79)
    at com.codacy.CodacyCoveragePlugin$$anonfun$7.apply(CodacyCoveragePlugin.scala:64)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1$$anonfun$apply$2.apply(FileHelper.scala:21)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1$$anonfun$apply$2.apply(FileHelper.scala:19)
    at scala.Option.map(Option.scala:145)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1.apply(FileHelper.scala:19)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1.apply(FileHelper.scala:18)
    at com.codacy.api.helpers.FileHelper$$anonfun$withCommit$2.apply(FileHelper.scala:34)
    at com.codacy.api.helpers.FileHelper$$anonfun$withCommit$2.apply(FileHelper.scala:33)
    at scala.Option.map(Option.scala:145)
    at com.codacy.api.helpers.FileHelper$.withCommit(FileHelper.scala:33)
    at com.codacy.api.helpers.FileHelper$.withTokenAndCommit(FileHelper.scala:18)
    at com.codacy.CodacyCoveragePlugin$.com$codacy$CodacyCoveragePlugin$$codacyCoverageCommand(CodacyCoveragePlugin.scala:64)
    at com.codacy.CodacyCoveragePlugin$AutoImport$$anonfun$baseSettings$2.apply(CodacyCoveragePlugin.scala:31)
    at com.codacy.CodacyCoveragePlugin$AutoImport$$anonfun$baseSettings$2.apply(CodacyCoveragePlugin.scala:30)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] (*:codacyCoverage) Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala