2012-04-25 11 views
0

私はMavenを使ってVaadinプロジェクトを作成し、ローカルMavenリポジトリにwarをインストールしました。 このプロジェクトは、公開クラスcom.whatever.Userを定義しています。sbtがVaadinプロジェクトに依存しない理由

次に、Vaadinプロジェクトにdepenecyを追加したいと思っています。そのロジックをテストするためです。私のsbtプロジェクトのbuild.sbtファイルでは私が追加しました:

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

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

私はSBTプロジェクト内からユーザーオブジェクトを使用してみましたsbtプロジェクトを再読み込みした後。しかし、私はこのエラーを受け取ります:

> 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 

私は何が欠けていますか?なぜこの依存関係を追加しないのですか?

答えて

2

実際には、sbtや他のビルドツールでは、warファイルを依存関係として使用できません。クラスパスがjavacまたはjavaにどのようになっているか考えてみましょう。コンパイラはおそらくこれを標準のzipファイルとみなし、実際のクラスがWEB-INF/classesであることに気付かないでしょう。

私はクラスをjarファイルとしてパッケージ化し、それを依存関係として使用する必要があると思います。

関連する問題