2

我正在尝试在 Play Framework 中使用一个名为 REST Assured 的库。文档 - https://code.google.com/p/rest-assured/wiki/GettingStarted - 为 Maven 提供了以下工件 -

<dependency>
      <groupId>com.jayway.restassured</groupId>
      <artifactId>rest-assured</artifactId>
      <version>1.8.0</version>
      <scope>test</scope>
</dependency>

所以我改变了我的 Build.scala 文件如下包含这个依赖 -

  val appDependencies = Seq(
    // Add your project dependencies here,
    javaCore,
    javaJdbc,
    javaEbean,
    "com.jayway.restassured" % "rest-assured" % "1.8.0" % "test"
  )

然后我尝试通过静态导入一些包在Java中使用这个库,这是文档指示我做的 -

import static com.jayway.restassured.RestAssured.*;
import static com.jayway.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;

但是,当我尝试运行 Play 应用程序时,这会导致编译错误 -

错误:com.jayway.restassured 包不存在

我知道 Play/sbt 正在检索依赖项,因为我可以在 play-2.1.0/repository/cache 目录中看到“com.jayway.restassured”目录。但是它没有显示在 play-2.1.0/repository/local 目录中,我不知道这是否有任何意义。

那么出了什么问题,为什么我不能在我的 Play 应用程序中访问这个库?

4

1 回答 1

3

如果您需要从非测试代码访问 REST Assured,则依赖项应定义为:

"com.jayway.restassured" % "rest-assured" % "1.8.0"

换句话说,放弃"test"声明。当它出现时,您指定该库是一个测试范围的依赖项。目前您说 REST Assured 不是您的生产代码的依赖项,只需要将范围限定为测试树中的代码(即添加到测试类路径中)。

我想接下来的问题是为什么你希望从你的app代码中引用一个测试库?

于 2013-04-20T16:21:24.380 回答