2011-08-15 4 views
1

私はいくつかのサブプロジェクトを持つプロジェクトを継承しました。開発中に、トップレベルプロジェクトでrunと呼んで実際の製品を開始することができます。しかし、製品を実行するために、あなたはのクラスパスを必要としないすべてのサブプロジェクトが含まれています。実際には、いくつかのサブプロジェクトは、ではなく、runClasspathでなければならないクラスパスを持っています。どうやってそれができる?トップレベルのクラスパスからどのようにサブプロジェクトのクラスパスを明示的に除外できますか?サブプロジェクトのクラスパスがトップレベルプロジェクトのクラスパスに含まれないようにするにはどうすればよいですか?

答えて

0

私は最初に自分の質問に答えます。私はそれが正しいアプローチだとは思わないが、うまくいくようだ。あなたはこのようなサブプロジェクトに定義されているとします。

lazy val fooSub = project(....) 

を...あなたの一番上の定義にこれを追加することで、トップレベルのクラスパスに含まれるようにfooSubのクラスパスを防止することが可能であると考えられますレベルのプロジェクト:

override def topologicalSort = super.topologicalSort.filter(_ != fooSub) 

fullClasspathは、独自のクラスパスにそのクラスパスを含めるために、すべてのサブプロジェクトを見つけるためにtopologicalSortを使用しているようですので、これは、動作します。しかし、私の好みにはやや強すぎるようです。それがどこか別の場所に壊れているかどうかは分かりません。

関連する問題