2016-06-24 57 views
0

我的目標是在控制應該包含的傳遞依賴時控制一個項目。帶有maven的條件傳遞依賴包含

比方說,項目Y的基於X項目 項目X有兩個定義型材,異型材-a和型材B:

<project> 
    ... 
    <profiles> 
    <profile> 
     <id>profile-a</id> 
     <dependencies> 
      // [A] depednencies 
     </dependencies> 
    </profile> 
    <profile> 
     <id>profile-b</id> 
     <dependencies> 
      // [B] depednencies 
     </dependencies> 
    </profile> 
    <profiles> 
</project> 

有沒有一種辦法,包括項目X到項目Y中指定我們想要導入項目X的配置文件的可能性?

控制傳遞依賴的示例方法應該是使用依賴排除,但是我正在尋找更復雜的方法,如果有可能使用它。


我有涉及在配置文件中使用依賴關係的第二個問題: 當然,項目X可能依賴於一個配置文件,以及輪廓-B的兩個依賴許多類。

如果使用一個配置文件構建或導入項目X(如果有可能的話),這不會中斷使用其他配置文件的依賴關係的類的編譯嗎?

謝謝大家的反饋意見。

+0

聽起來很奇怪。絕不應通過配置文件處理依賴關係。如果您因爲任何原因需要不同的依賴關係,您應該製作獨立的模塊......重要的問題是:您爲什麼需要這樣的東西? – khmarbaise

+0

我不確定這種方法的一致性。我使用配置文件的例子來給出我想要實現的想法......我有一個項目提供了許多實用程序類;要控制最終應用程序中將要加載的庫的數量,我只想知道是否有解決方案來減輕加載的庫並只包含需要的內容。 – Strider

+0

目前還不清楚你正在研究的是什麼樣的應用程序...你能詳細說明一下嗎... – khmarbaise

回答

0

在我與@khmarbaise討論後,我在maven網站上做了一個額外的搜索,並且我偶然發現了this article

在這個頁面中,有一個涉及從單一來源目錄,它被指定生產多種獨特的JAR文件的一段:

由於很多人認爲抱怨不能夠把她們的 來源到多個來源目錄似乎抱怨不想 想要分散任何東西,使用包括和排除從單個目錄產生幾個獨特的文物 。

爲什麼不推薦這麼做?

這種做法可能會造成混淆和風險。

您最終可能會構建兩個包含相同類的JAR - 此 表示通用功能應該已被抽象爲單獨的依賴項 。您最終可能會在兩個JAR之間引入依賴關係 ,這些JAR並未實現,並且通常依賴於循環 。這表明這些類在錯誤的JAR中,或者可能是所有東西都應該是單個JAR。

我該怎麼做?

你仍然應該堅持每個POM產生一個工件,但是這個 需要有多個POM,因此需要多個子目錄。 積極的是,這些引入的目錄不會改變現有代碼的佈局 ,並將建立一個未來的佈局應該你 決定分開。

起初,我一直在尋找一種方法來管理從一個項目到另一個項目的傳遞性依賴關係,方法是從同一個源創建許多工件。

在這段閱讀之後,很明顯maven鼓勵每pom創建一件神器。

創建項目的單獨模塊肯定仍然是處理不同情況下從一個項目到另一個項目的依賴關係使用的最乾淨的方式。