这看起来像是在激活器中重新加载项目定义失败。
如果我使用以下内容更新 build.sbt,该项目仍将正确编译not因为依赖关系没有问题,但因为它不知道更改。
libraryDependencies ++= Seq(
javaJdbc,
javaEbean,
cache,
javaWs,
"foo" % "bar" % "1.0"
)
编译消息:
[exampleApp] $ compile
[success] Total time: 0 s, completed 29-apr-2015 9:13:30
如果我现在reload
我的项目配置,我们将开始看到问题。
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: foo#bar;1.0: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) sbt.ResolveException: unresolved dependency: foo#bar;1.0: not found
如果您添加了需要特殊解析器的依赖项,例如,这正是您所看到的。快照等
让我们从 build.sbt 中删除该行并reload
这样我们就可以正确编译,然后为项目中不存在的包添加导入。
build.sbt(随后重新加载)
libraryDependencies ++= Seq(
javaJdbc,
javaEbean,
cache,
javaWs
)
应用程序.java
import play.*;
import play.mvc.*;
import views.html.*;
import foo.bar.*;
public class Application extends Controller {
public static Result index() {
return ok(index.render("Your new application is ready."));
}
}
编译此结果
[error] D:\tmp\exampleApp\app\controllers\Application.java:7: error: package foo.bar does not exist
[error] import foo.bar.*;
[error] ^
[error] 1 error
[error] (compile:compile) javac returned nonzero exit code
这两个错误具有非常不同的特征,并且这与dependencies
如上所述应该有助于引导您到正确的地方。