如何下载所有可能的 Maven 依赖项以便它们是本地的

How to download all possible maven dependencies so they are local

我在一个非常庞大的防火墙后面工作,它喜欢在随机连接时打嗝,这使得所有使用远程存储库的工作对我来说都是一个活生生的噩梦!

我正在寻找来自 Git 的项目(这个 https://github.com/mrniko/netty-socketio),它大量使用 maven 来下载依赖项。

我想做的是在另一个终端(比如http://cloud9.io之类的)下载所有的maven依赖,这样整个项目就可以运行独立了。

我已经尝试过mvn clean install然后压缩源文件夹,但实际上还不够!当我尝试在 Eclipse 中本地 运行 项目时,我仍然遇到 ClassNotFound 相关错误。作为记录,我确实在构建属性中添加了已编译的 *.class 文件,因此 Eclipse 知道它们在哪里。似乎有一些动态生成的随机 classes 仍然不存在(例如 log4j - 我真的不想单独追捕每个)

我想知道是否有一种完全彻底的方法可以从 maven 下载所有可能的依赖项,然后 运行 一个 100% 独立的项目,或者从中创建一个本地 maven 服务器?

我在 Eclipse Luna 上 运行ning Java 7,我确实在我的 windows 7 机器上安装了 Maven(尽管它在远程存储库上几乎不起作用)。我还有一个 Cloud9 实例,可用于 运行 Maven 命令,然后压缩结果以供本地下载。

当您执行mvn clean install时,maven 会将当前构建的项目的所有依赖项下载到您的本地maven 存储库。这通常位于

%USERPROFILE%\.m2\repository

构建项目时,maven 使用该路径来查找所需的依赖项。

如果要全部下载,可以尝试使用mvn dependency:copy-dependencies。然后,您将在项目的 target/dependencies 目录中找到所有项目依赖项。这也包括传递依赖。

要将它们全部添加为 eclipse 依赖项,您可能想尝试 maven-eclipse-plugin。使用该插件,您可以使用 mvn eclipse:eclipse 命令生成 eclipse .project.classpath 文件。这将使用来自 maven 的所需依赖项填充 eclipse 文件。然后,您应该使用 Import existing projects into workspace 而不是 Import existing maven projects.

将项目导入到 eclipse

maven-eclipse-plugin 会将所有这些 jar 添加到 M2_REPO 变量指定的文件夹中。只要确保在 eclipse 项目属性中编辑此变量,就应该设置好。

我也遇到过类似的问题。我会发现,由于防火墙策略的变化,有时我项目中的所有 .jar 文件都已更新为 1K 文件,当在 notepad++ 中打开时,其中包含一条来自防火墙的消息,说明下载已被阻止。

我建议查看 Nexus 以进行本地存储库管理,这意味着您的本地项目不必越过防火墙来检查 Maven 更新。

http://www.andrejkoelewijn.com/blog/2010/03/09/getting-started-with-nexus-maven-repository-manager/

使用依赖插件go-offline任务。