在我的多模塊Maven項目中,假設我有兩個模塊,分別爲car
和horse
。它們都依賴於JAR文件transport.jar
,這是一個在任何聯機Maven存儲庫中都不可用的文件。因此,我需要找到一種方法來使這些模塊依賴於在項目文件夾結構中找到的某個文件。依賴於JAR的多個Maven模塊
據我所知,默認的Maven解決方案是手動在本地資源庫中註冊JAR文件。雖然這可以在開發機器上工作,但它會在構建服務器上中斷,這會在每次構建之前清除其本地存儲庫。
我一直在網上搜索如何做到這一點和關閉了一段時間,發現一些有用的東西,但沒有完全有效的東西。
例如,一個常見的答案是使用<scope>system</scope>
向文件添加依賴項。但是,不僅其他人聲稱這是非常糟糕的做法,它也不適用於構建服務器。 (在附註中,我還想指出,使用JAR的絕對路徑也是不可能的,因爲它又建立在幾個不同的機器上。)
我找到了一個更有用的方法是在POM文件中定義一個本地存儲庫,指向路徑file:${project.basedir}/lib
。 (Such as in this article)不幸的是,如果我將JAR和存儲庫定義放入car
POM中,我無法成功將依賴項添加到horse
中的JAR。我已經嘗試了horse
中的car
以及沒有額外的參考,並且在horse
中定義了第二個存儲庫,指向file:${project.basedir}/../car/lib
。如果我試圖製作第三個模塊transport-lib
,這個問題也將繼續存在,專門用於包裝JAR依賴項。
我很可能會將JAR文件添加到這兩個模塊並定義兩個單獨的模塊本地存儲庫,但我真的不想,除非由於需要保留兩個(經常更新的)JAR同步等
所以,我的問題如下:有人可以給我一個確認工作的方法,讓兩個模塊依賴項目內的相同JAR文件,給定的參數和限制提到?
我真的想找到這樣做的Maven的唯一途徑,但最終,我不得不採取Artifactory路線。我想,贏不了他們。 – Smallhacker