2010-07-22 118 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进行安装。