我在一个没有连接互联网的独立开发网络上工作。我已经推迟使用Maven多年了,因为它似乎需要互联网连接,但我终于厌倦了没有我从Maven Central手动下载的JAR所需的依赖项,并且通过文档假设你可以使用Maven。
因此,我正在尝试在开发网络上设置我自己的Maven服务器,并通过CD / USB定期克隆项目及其依赖项。
作为一个Maven'新手',我很难找到我需要做的信息。有人能够为我提供实现上述目标的指南吗?
答案 0 :(得分:3)
您可以设置Nexus存储库,请参阅http://www.sonatype.org/nexus/。
还有this useful answer解决类似的问题。
答案 1 :(得分:2)
您的需求并不罕见。出于安全性和易处理性的原因,许多组织都会这样做。
您首先需要设置一个 maven存储库管理器,它将托管您下载的远程存储库并保留您发布的工件。
查看Nexus或Artifactory。两者都是很棒的存储库管理器,并且有免费版本。
之后,您需要获取所有maven安装以查看存储库管理器而不是公共Internet。这样做是为了编辑 M2_HOME / conf / settings.xml 。您可以使用maven或安装的存储库管理器查看文档。
按照所有文档进行操作即可。
我希望这会有所帮助。
答案 2 :(得分:1)
您必须在本地存储库中安装每个工件,或者使用像nexus或artifactory这样的存储库管理器。
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 package
,o
以供离线使用。
无论如何,这不是我推荐的,因为在这样的设置中使用maven可能会导致相当大的痛苦。
答案 3 :(得分:1)
好的,所以这里是我最终做的一步一步的指南。答案很有帮助,但没有一个真正提供我作为新手所需的信息来启动和运行。
1)在连接到互联网的机器上下载并安装Sonatype Nexus
2)在离线开发网络上安装另一版本的Sonatype Nexus
3)在Eclipse中创建一个'空'Maven项目
4)将以下内容添加到$USER_HOME\.m2\settings.xml
(此文件夹的位置在Eclipse的Preferences-> 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新手可以效仿。
答案 4 :(得分:0)
我建议您使用Apache Archiva等应用程序来实现此目的。它可以用于镜像maven中央存储库。它有一个非常好的文档:http://archiva.apache.org/docs/2.0.0/