2013-01-02 129 views
3

我需要知道是否有Maven項目,我可以導入外部(* .jar)而不生成Maven依賴項(POM),只需將它們導入到項目構建路徑中。將* .jar導入到Maven項目時遇到問題

我找到了一些麻煩,試圖運行該項目時,它要求我無法在Web中找到其他依賴關係,並且檢查了這些依賴關係並不是必需的,因爲我檢查了我的代碼和(* .jar)在一個不使用Maven的項目中,它可以工作(不需要導入那個庫)。

+0

那麼在這些罐子上聲明一個簡單的這麼擰?畢竟,maven的主要銷售功能之一 - 易於依賴處理 – radai

回答

1

免責聲明:以下僅適用於多人共用相同項目的環境中工作。如果你是獨立的,那麼所有的建議都很好。

我不喜歡系統依賴或做本地進口;在這兩種情況下,你仍然在管理每臺機器的依賴關係,這是Maven應該從你身上帶走的負擔。

如果你真的有不能在任何在線Maven倉庫中找到的依賴,我寧願把辛苦,但更可靠的途徑,那就是安裝一個本地的Nexus服務器,然後您就可以還設置爲一個很好的鏡子對於Maven central和JBoss Nexus,客戶端不需要繼續下載互聯網的依賴關係。這樣你就擁有了一臺可以維護所有Maven依賴關係的機器,這使得它變得很好而且可控。另外你的Nexus更容易獲得;如果您的Internet連接斷開,外部Maven源可能會關閉或無法使用。

然後,您可以在Nexus中安裝jar(在本地存儲庫中稱爲「第三方」,這是我見過的在我迄今爲止工作過的公司中使用的常見策略)和Maven客戶端,您的Nexus服務器是一個鏡像,可以引用第三方Maven依賴關係,就好像它們來自在線的。

+0

謝謝你的時間和幫助! :)好的提示! – Carol

+1

當您到達Maven的高級部分(稱爲「發佈管理」)時,您會更加感謝我,Nexus基本上是實現可靠且輕鬆完成的基礎。 – Gimby

2

您可以將jar導入到本地存儲庫,並像往常一樣在POM中引用它。但是,每個開發人員都需要在他/她的機器上進行導入(一次)。

看到:http://jeff.langcode.com/archives/27

+0

我要去嘗試它!非常感謝:D祝你有美好的一天! – Carol

1

您可以提供一個System Dependency

+0

我正在嘗試!我會告訴你!!感謝您的時間和幫助!祝你今天愉快。 :D – Carol

2

您需要使用上maven-install-plugin目標:install-file

mvn install:install-file -Dfile=your-artifact-1.0.jar \ 
        [-DpomFile=your-pom.xml] \ 
        [-Dsources=src.jar] \ 
        [-Djavadoc=apidocs.jar] \ 
        [-DgroupId=org.some.group] \ 
        [-DartifactId=your-artifact] \ 
        [-Dversion=1.0] \ 
        [-Dpackaging=jar] \ 
        [-Dclassifier=sources] \ 
        [-DgeneratePom=true] \ 
        [-DcreateChecksum=true] 

如果您正在使用Nexus,你可以上傳罐子manually

+0

謝謝@asgoth !!我會試試它!祝您有個愉快的一天,並感謝您的時間和幫助! – Carol