【问题标题】:Unable to load dependency in Play framework project无法在 Play 框架项目中加载依赖项
【发布时间】:2013-04-13 20:51:16
【问题描述】:

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

【问题讨论】:

  • 嗯,如果我将它们放在我的 /test 目录中的 Java 文件中,导入似乎可以工作。但如果我将它们放在我的 /app 目录中的 Java 文件中,则不会。如果我尝试在我的 /app 目录中的文件中使用它们,我得到包不存在错误。知道为什么会这样吗?

标签: playframework playframework-2.0 sbt


【解决方案1】:

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

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

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

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

【讨论】:

  • 我正在尝试各种方法来让 IntelliJ 处理这种依赖关系而不会引发错误。你的建议有效。此外,如果我在声明中保留“测试”并从测试代码中引用测试库,这将在 Play 控制台上正常工作。也就是说,“运行”、“测试”和“编译”命令可以正常工作. 但是,我在此测试库的导入语句中遇到 IntelliJ 错误,说“无法解析包”,我无法从 IntelliJ 运行我的应用程序或测试。
  • 考虑到 IntelliJ 应该有最好的支持,看来 IDE 对 Play 的支持很糟糕,但简单地在测试包中添加一个依赖项就完全破坏了它。
  • @sonicboom - 您是否尝试在 IntelliJ 中将 rest-assured-1.8.0.jar 添加到您的项目类路径中?我以前没有使用过 IntelliJ,但大概会“让红色消失”。
  • 我希望管理依赖项,因此这不是一个选项。事实证明,我在应用程序的任何位置添加的任何依赖项都会导致“无法解析包”错误...叹息
猜你喜欢
  • 2012-11-17
  • 2015-01-19
  • 2023-03-31
  • 1970-01-01
  • 2011-03-12
  • 2014-04-08
  • 1970-01-01
  • 2014-07-01
  • 2021-11-28
相关资源
最近更新 更多