0

我已经使用 maven 创建了一个 Vaadin 项目,并将 war 安装在我的本地 maven 存储库中。这个项目定义了一个公共类,com.whatever.User.

然后,我创建了一个 sbt 项目,我想在 Vaadin 项目上添加一个依赖项——以测试它的逻辑。在我的 sbt 项目的 build.sbt 文件中,我添加了:

resolvers += "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository"

libraryDependencies ++= Seq(
  "com.whatever" % "something" % "1.0"
)

重新加载 sbt 项目后,我尝试使用 sbt 项目内部的 User 对象。但我收到了这个错误:

> test
[info] Compiling 1 Scala source to /Users/me/projects/something-test/target/scala-2.9.1/classes...
[error] /Users/me/projects/something-test/src/main/scala/TryingUser.scala:1: object whatever is not a member of package com
[error] import com.whatever.User
[error]            ^
[error] one error found
[error] {file:/Users/me/projects/something-test/}default-1bc94a/compile:compile: Compilation failed
[error] Total time: 3 s, completed 2012-apr-25 13:44:56

我错过了什么?为什么 sbt 不添加此依赖项?

4

1 回答 1

2

我看不到 sbt 或任何其他构建工具能够使用 war 文件作为依赖项。想想类路径传递给什么javacjava看起来像什么。编译器可能只会将其视为标准 zip 文件,而不会知道实际的类位于WEB-INF/classes.

我认为您需要将类打包为 jar 文件并将其用作依赖项。

于 2012-04-25T12:40:03.207 回答