无法在Play框架项目中加载依赖项

时间:2013-04-20 15:17:58

标签: playframework playframework-2.0 sbt

我正在尝试使用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应用程序中访问这个库?

1 个答案:

答案 0 :(得分:3)

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

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

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

我想后续问题是您希望从app代码中引用测试库的原因?