java - 配置 Maven 以创建包含 POM XML 中定义的所有依赖项的存档文件

标签 java maven dependencies collaboration

我在没有互联网代理的专用网络中工作。

我也无法创建本地存储库,这涉及官僚机构,管理层不允许。我可能是一个长期解决方案,但不是我提出的问题的解决方案。

我无法将 Maven 作为构建工具,因为它需要直接或间接的互联网连接。

我必须使用 ANT 来构建项目,因此在离线模式下使用 Maven 也不适合我。

但我仍然想使用 Maven 依赖管理来巧妙地将所有 jar 收集到一个存档中。

我的计划是生成一个 ZIP 文件,其中包含使用 maven 解析的依赖项。然后我们将将此 ZIP 文件共享给在没有互联网连接的专用网络内工作的所有开发人员。

为此,我将临时访问具有 Internet 连接的计算机,并从那里定义一个包含所需所有依赖项的虚拟 POM。

现在的问题是如何使用 maven 生成一个 ZIP 文件(而不是单个 jar),其中包含 POM 中定义的所有依赖项。

最佳答案

虽然您的建议在技术上是可行的,但(在我看来)这并不是解决您问题的最佳解决方案。

你的陈述

it requires the direct or indirect internet connection

不准确。 maven 需要的是一个 Maven 存储库(或一组)来从中获取内容。解决您的问题的最佳解决方案是在您组织的网络内安装本地 Maven 存储库。本地运行的 Maven 存储库的 2 个最流行的选择似乎是 nexusartifactory - 两者都提供免费的开源版本和付费支持的专业版本。

一旦您在组织的网络中设置了 Maven 存储库并用您需要的 Artifact 填充它,您就可以简单地配置所有项目的 pom 文件以转到这些存储库。例如,要配置 Maven 使用您的存储库而不是 Maven Central,您可以执行以下操作:

<repositories>
    <!-- override central -->
    <repository>
        <id>central</id>
        <url>http://your.repo.location</url>
    </repository> 
</repositories>

您将需要以类似的方式映射插件存储库。 如果您不想在 pom 文件中配置 maven settings.xml 文件,也可以通过在每个用户的主目录中配置 maven settings.xml 文件来实现此目的,但根据我的经验,这种方式不太容易出错

关于java - 配置 Maven 以创建包含 POM XML 中定义的所有依赖项的存档文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313849/

相关文章:

java.lang.NumberFormatException : empty String 异常

java - java中的UDP套接字聊天应用

java - 使用 Maven 的 SpringMVC 和 Hibernate

java - 在 Jboss 模块和项目依赖项之间选择库版本

github - 使用 CLI 从 Github 中的项目获取依赖项

dependencies - SCons 依赖于编译时生成的文件

java - 在函数中使用 FileWriter;文件应该已经存在

Java Spring Boot - spring-boot-starter-tomcat 依赖项不适用于在本地运行时提供的范围

android - 在 eclipse 中使用 maven android 原型(prototype)

java - 我可以从 JDBI 取回字段子集吗?