神器提供了一些API,爲客戶有了它,這些都是其在INTERAL代碼庫實現只有幾Java接口交互...建築API只考慮到我們的行家謨行家
現在,如果我們只是建立了罐子,發佈它任何人都可以看到我們用於實現的內部類,但是我們只需要發佈幾個Java接口(以及幾個DTO類可能)...
是否可以精確選擇我們想要的java文件建立jar並創建兩個工件,如(product.jar/war和product-api.jar)
prupose是爲了限制被其他球隊的代碼可能被濫用......
神器提供了一些API,爲客戶有了它,這些都是其在INTERAL代碼庫實現只有幾Java接口交互...建築API只考慮到我們的行家謨行家
現在,如果我們只是建立了罐子,發佈它任何人都可以看到我們用於實現的內部類,但是我們只需要發佈幾個Java接口(以及幾個DTO類可能)...
是否可以精確選擇我們想要的java文件建立jar並創建兩個工件,如(product.jar/war和product-api.jar)
prupose是爲了限制被其他球隊的代碼可能被濫用......
最好是使Maven的單獨的模塊代表喜歡你的模塊:
project-api
其中只包含了接口,可以由他人單獨使用。
project-impl
一個實施等 以上使測試更容易等都是不錯的選擇與問候的關注點分離。
謝謝,這對於大型項目來說很常見嗎?我的項目變得太大了,許多小團隊創建了愚蠢的依賴關係,現在很難擺脫......因此我想消除他們將使用他們不應該使用的源代碼的可能性。 – vach
我正在從事320個模塊/ 120開發人員的項目,是的,我們完全按照您所描述的方式來防止耦合。 – khmarbaise
@vach我不知道這是如何幫助你防止其他團隊濫用代碼,因爲你需要爲這兩個模塊提供罐子。我遇到了類似的情況,我必須爲包含接口的API構建一個單獨的模塊。但是我沒有完全理解這個概念,以及它在與多個團隊合作時的幫助。 –
你的問題是關於保護代碼而不是一般的maven。你可以有多模塊maven項目,但任何人都可以下載並解壓縮它。 一些想法作爲Java並有內置的機制來支持這一點,但也有變通辦法......一些想法..
您可以拆分項目進入多個模塊,如: 項目的API,項目-JAR,項目的EJB,項目戰爭等 – novy1234
是的,但是,吸,想象我」將只有幾個接口和dto類aproject ...我會這樣做,如果沒有其他選擇是可能的... 我希望有一個解決方案只是pom.xml或與gradle也許? – vach
爲什麼它很爛?這是maven應該做的。除了創建項目API將有助於解耦您的項目。未來,與第三方共享API也將變得更加容易。 – plastique