我有一段代碼是適用於其他解決方案的代碼(例如:A,B,C)。用戶選擇他們將在他們的項目中使用哪種解決方案(只有一種)(通過此適配器)。顯然,我仍然需要用A,B,C依賴關係編譯我的代碼。但是我不想在A,B,C上都有compile
依賴關係 - 例如,如果用戶選擇解決方案A,他不需要包含B或C.Maven:可選提供的範圍?
我應該聲明A,B,C依賴項在我的POM爲:
provided
provided
,但optional
- 剛從POM 刪除
換句話說:的確provided
意味着用戶必須在其運行時提供實現?
Thanx!
編輯:類似this question
換句話說,「提供但可選」沒有意義? '提供'是否意味着用戶必須提供實現? – igr
這取決於你的代碼,但大多數答案是肯定的。如果未提供依賴關係,那麼您很可能會發現類沒有發現異常,儘管您可能可以根據您的應用程序的配置進行編碼。一般來說,這有點困難。可選的依賴關係並不意味着這一點。 –