2010-07-22 154 views
5

我坐在防火牆後面,因此maven無法連接到中央存儲庫(錯誤消息如下)。Maven:如何在離線模式下安裝插件

但是,我可以通過HTTP連接到互聯網。

如何在離線模式下安裝maven插件(例如archetype)(即在瀏覽器中下載某個文件,然後通過執行某些命令來安裝插件)?

在此先感謝

德米特里

PS:以下是錯誤消息:

E:\>mvn archetype:generate -DarchetypeGroupId=com.vaadin 
-DarchetypeArtifactId=vaadin-archetype-clean -DarchetypeVersion=LATEST -DgroupI 
d=at.swdev -DartifactId=pcc -Dversion=1.0 -Dpackaging=war 
[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: 'archetype'. 
[INFO] org.apache.maven.plugins: checking for updates from central 
[WARNING] repository metadata for: 'org.apache.maven.plugins' could not be retri 
eved from repository: central due to an error: Error transferring file: Connecti 
on refused: connect 
[INFO] Repository 'central' will be blacklisted 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] The plugin 'org.apache.maven.plugins:maven-archetype-plugin' does not exi 
st or no valid version could be found 
[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1 second 
[INFO] Finished at: Thu Jul 22 15:17:00 CEST 2010 
[INFO] Final Memory: 1M/15M 
[INFO] ------------------------------------------------------------------------ 

回答

7

我坐在防火牆後面,因此行家無法連接到中央存儲庫(錯誤信息在下面給出)。但是,我可以通過HTTP連接到Internet。

也許你應該澄清一點,因爲Maven也使用HTTP。如果您通過某種代理連接,則可以通過在您的~/.m2/settings.xml中聲明代理來配置Maven。見Configuring a proxy

如何在脫機模式下安裝maven插件(例如archetype)(即在瀏覽器中下載某個文件,然後通過執行某些命令來安裝插件)?

你可以在你的本地庫使用install:install-file目標(見Usage頁)安裝任何罐子。但這只是故事的一小部分,您還需要安裝插件的依賴關係。然後依賴關係的依賴關係。這很快就會變成真正的噩夢和難以管理的任務(Maven正在努力解決這個問題)。因此,要麼:

  • 配置Maven來訪問互聯網,如果這是可能的〜或者〜
  • 設置專用機器上的公司資源庫(如Nexus),看到你的管理員如何允許它訪問互聯網)和將您的Maven客戶端配置爲使用它或〜
  • 將「預先填充的」本地存儲庫從現有機器複製到您的機器並脫機運行maven(這意味着所有限制)〜或〜
  • 使用Maven
+0

謝謝,配置代理幫助! – 2010-07-23 11:36:42

+0

@〜dp-sw-dev:不客氣。很高興幫助。 – 2010-07-23 13:36:31

+0

有同樣的問題。哦,寶貝!祝福U帕斯卡爾! :d。你的名字應該是'Turbo'Pascal !!非常感謝人! – 2014-02-08 15:55:49

0

如果您不能使用代理服務器,那麼您應該下載Pascal所說的所有插件依賴項。最簡單的方法來做到這一點。

使用具有正常/代理http連接的計算機下載所有依賴關係。 Maven依賴插件有一個可以幫助你的目標。 mvn依賴:go-offline

例如,我用它來獲取app-fuse教程的maven依賴關係。

SVN CO(HTTP這裏)appfuse-demos.googlecode.com/svn/trunk/helloworld (看看源代碼) MVN安裝(安裝,看看它的工作原理在正常機) MVN依賴性:復飛離線(它下載一切。幫助:告訴Maven解決此項目依賴的所有內容(依賴項,插件和報告)以準備離線。)

之後,在您的本地m2存儲庫(〜/ m2 /存儲庫)中,您會發現你需要的一切。壓縮該文件夾。把它放在你的內部網中。將其提取到您的本地存儲庫或 公司存儲庫(nexus,artifactory ..)

您應該可以立即使用該插件。

http://maven.apache.org/plugins/maven-dependency-plugin/

0

我猜您的安全防火牆不允許你從行家中央repo.So下載,你可以簡單地在MAVEN_HOME settings.xml文件中指定的鏡子。如果你的公司有類似nexus的存儲庫,請在settings.xml中的鏡像部分提供該nexus的服務器url。 請注意,如果您的公司沒有任何回購,則必須脫機下載所有依賴項,並在生成服務器的本地存儲庫中使用mvn install進行安裝。