2011-08-15 44 views
1

我繼承了一個有許多子項目的項目。在開發過程中,您可以通過在頂級項目上調用run來啓動實際產品。但是,對於運行該產品,您不需要需要的所有子項目的類路徑被包括在內。實際上,一些子項目有一個類路徑,它應該包含在頂層runClasspath中,其中絕對不是。你怎麼能這樣做?如何從頂層類路徑中顯式排除子項目的類路徑?如何防止子項目的類路徑包含在頂級項目的類路徑中?

回答

0

我會先回答我自己的問題。我不覺得這是正確的方法,但它似乎工作。假設你定義這樣一個子項目:

lazy val fooSub = project(....) 

...那麼它似乎是可以防止通過添加以下內容到頂部的定義fooSub的類路徑中包含在頂級類路徑-level項目:

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

這工作,因爲fullClasspath似乎用topologicalSort找到所有子項目,包括他們的類路徑,以自己的類路徑。儘管我的口味似乎有點太侵略。很難說它是否打破了別的地方。

相關問題