1
我繼承了一個有許多子項目的項目。在開發過程中,您可以通過在頂級項目上調用run
來啓動實際產品。但是,對於運行該產品,您不需要需要的所有子項目的類路徑被包括在內。實際上,一些子項目有一個類路徑,它應該包含在頂層runClasspath
中,其中絕對不是。你怎麼能這樣做?如何從頂層類路徑中顯式排除子項目的類路徑?如何防止子項目的類路徑包含在頂級項目的類路徑中?
我繼承了一個有許多子項目的項目。在開發過程中,您可以通過在頂級項目上調用run
來啓動實際產品。但是,對於運行該產品,您不需要需要的所有子項目的類路徑被包括在內。實際上,一些子項目有一個類路徑,它應該包含在頂層runClasspath
中,其中絕對不是。你怎麼能這樣做?如何從頂層類路徑中顯式排除子項目的類路徑?如何防止子項目的類路徑包含在頂級項目的類路徑中?
我會先回答我自己的問題。我不覺得這是正確的方法,但它似乎工作。假設你定義這樣一個子項目:
lazy val fooSub = project(....)
...那麼它似乎是可以防止通過添加以下內容到頂部的定義fooSub
的類路徑中包含在頂級類路徑-level項目:
override def topologicalSort = super.topologicalSort.filter(_ != fooSub)
這工作,因爲fullClasspath
似乎用topologicalSort
找到所有子項目,包括他們的類路徑,以自己的類路徑。儘管我的口味似乎有點太侵略。很難說它是否打破了別的地方。