Playframework 无法在Play framework项目中加载依赖项

Playframework 无法在Play framework项目中加载依赖项,playframework,playframework-2.0,sbt,Playframework,Playframework 2.0,Sbt,我正在尝试使用一个名为REST-Assured的库和Play框架。文档--为Maven提供了以下工件- <dependency> <groupId>com.jayway.restassured</groupId> <artifactId>rest-assured</artifactId> <version>1.8.0</version> <scope>t

我正在尝试使用一个名为REST-Assured的库和Play框架。文档--为Maven提供了以下工件-

<dependency>
      <groupId>com.jayway.restassured</groupId>
      <artifactId>rest-assured</artifactId>
      <version>1.8.0</version>
      <scope>test</scope>
</dependency>
然后,我尝试通过静态导入一些包在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应用程序中访问此库?

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

"com.jayway.restassured" % "rest-assured" % "1.8.0"
换句话说,删除
“test”
声明。如果存在,则指定该库是测试范围依赖项。目前,您的意思是REST-Assured不是生产代码的依赖项,只需要限定到测试树中的代码(即添加到测试类路径)


我想接下来的问题是,为什么您希望从
应用程序中引用测试库

嗯,如果我把它们放在/test目录下的Java文件中,导入似乎可以工作。但如果我将它们放在/app目录中的Java文件中,则不会。如果我尝试在我的/app目录中的文件中使用包,则会出现“包不存在”错误。知道为什么会发生这种情况吗?我尝试了各种方法让IntelliJ在不抛出错误的情况下处理这种依赖关系。你的建议行得通。此外,如果我在声明中保留“test”,并从测试代码中引用测试库,则可以在播放控制台中正常工作。也就是说,“run”、“test”和“compile”命令可以正常工作。但是,我在该测试库的导入语句中发现IntelliJ错误,表示“无法解析包”而且我无法从IntelliJ运行我的应用程序或测试。考虑到IntelliJ应该有最好的支持,似乎IDE对Play的支持很糟糕,但简单地在测试包中添加依赖项就完全破坏了这一点。@sonicboom-您是否尝试过在IntelliJ中将
rest-assured-1.8.0.jar
添加到您的项目类路径中?我以前没有使用过IntelliJ,但这可能会“让红色消失”。我希望管理依赖项,因此这不是一个选项。事实证明,我在应用程序中添加的任何依赖项都会导致“包无法解决”错误……唉
"com.jayway.restassured" % "rest-assured" % "1.8.0"