2014-02-25 52 views
0

我在独立的开发网络上工作,该网络没有连接到互联网。多年来我一直在使用Maven,因为它似乎需要互联网连接,但我终于厌倦了没有JAR的必需依赖关系,我已经手动从Maven Central下载了文件,并且假设你可以使用Maven。设置离线Maven服务器

因此,我试图在开发网络上设置自己的Maven服务器,并通过CD/USB定期克隆项目及其依赖关系。

虽然作为Maven的新手,但我正努力寻找我需要的信息。有人能够为我提供实现上述目标的指南吗?

回答

1

您将不得不需要在本地存储库上安装每个工件或使用像nexus或ar​​tifactory这样的存储库管理器。

mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file \ 
-Dfile=path-to-your-artifact-jar \                     
-DgroupId=your.groupId \                     
-DartifactId=your-artifactId \ 
-Dversion=version \ 
-Dpackaging=jar \ 
-DlocalRepositoryPath=path-to-specific-local-repo 

Maven使用与其他资源相同的机制加载自己的插件。您至少需要本地存储库中的这些插件(位于$HOME/.m2)。建议使用启用网络的计算机,设置/构建您的项目,执行mvn dependency:go-offline,然后将$HOME/.m2存储库传输到USB。然后,如果要打包,请拨打mvn -o packageo进行脱机。

无论如何,这不是我会推荐的,因为在这样的设置中使用maven可能会导致相当大的痛苦。

2

您的需求并不十分罕见。出于安全性和易处理性的原因,许多组织都喜欢这样做。

您首先需要设置一个maven资源库管理器,它将托管您下载的远程存储库并保留您发布的工件。

调查NexusArtifactory。这两位都是优秀的存储库经理,并拥有免费版本。

之后,你需要让你所有的maven安装看看版本库管理器,而不是公共互联网。这是通过编辑M2_HOME/conf/settings.xml完成的。您可以使用maven或者您安装的资源库管理器查看文档。

请按照所有文档,你会很好去。

我希望这会有所帮助。

0

我为您提供了一个应用程序,例如Apache Archiva。它可以用来镜像maven中央存储库。它有一个非常好的文档在这里:http://archiva.apache.org/docs/2.0.0/

1

好的,所以这里是我最终做的一步一步的指南。答案很有帮助,但他们都没有提供我需要的信息作为新手启动并运行。



1)下载并连接到互联网

2)离线开发网络

3上安装Sonatype的的Nexus的另一版本的计算机上安装Sonatype的的Nexus)创建一个 '空' 的Maven在Eclipse项目

4)添加以下$USER_HOME\.m2\settings.xml(此文件夹的位置在Eclipse指定在首选项 - > Maven->用户设置)

<settings> ... <mirrors> <mirror> <id>central-nexus</id> <name>Central (Nexus)</name> <url>http://localhost:8081/nexus/content/repositories/central/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ... </settings>

5)将所需的依赖关系添加到pom.xml - 例如, (周围的版本号的括号会告诉它来下载更新的版本了。)

<dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-parsers</artifactId> <version>[1.5,)</version> </dependency>

6)编译项目。这将导致Nexus缓存所有JAR及其依赖项。

7)转让$NEXUS_ROOT\sonatype-work\nexus\storage文件夹复制到离线网络和替换文件中出现与所复制的文件



我还没有制定出如果有这么只是做复制一个更聪明的方法更新被复制,但至少让我开始了。

感谢您指出正确的方向,并希望这些说明对其他Maven新手来说足够清晰。