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

Java 配置Maven以创建包含POM XML中定义的所有依赖项的归档文件,java,maven,dependencies,collaboration,Java,Maven,Dependencies,Collaboration,我在一个没有internet代理的专用网络中工作 我也不能创建一个涉及官僚机构的本地存储库,管理层不允许这样做。我可能是一个长期的解决方案,但不是我所问问题的解决方案 我不能将maven作为构建工具,因为它需要直接或间接的internet连接 我必须使用ANT来构建项目,因此在脱机模式下使用maven也不是我的选择 但是,我仍然希望使用maven依赖关系管理来智能地收集一个归档中的所有JAR 我的计划是生成一个包含使用maven解析的依赖项的ZIP文件。然后,我们将把这个ZIP文件共享给在没有互

我在一个没有internet代理的专用网络中工作

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

我不能将maven作为构建工具,因为它需要直接或间接的internet连接

我必须使用ANT来构建项目,因此在脱机模式下使用maven也不是我的选择

但是,我仍然希望使用maven依赖关系管理来智能地收集一个归档中的所有JAR

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

要做到这一点,我将获得一个临时访问的计算机是有互联网连接,从那里我将定义一个虚拟的POM与所有需要的依赖关系


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

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

你的声明是

it requires the direct or indirect internet connection
这是不准确的。maven需要一个maven存储库(或一组存储库)来从中获取内容。解决问题的最佳方案是在组织的网络中安装本地maven存储库。对于运行不佳的maven存储库来说,两个最流行的选择似乎是和-它们都提供免费的开源版本和付费支持的pro版本

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

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

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

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

你的声明是

it requires the direct or indirect internet connection
这是不准确的。maven需要一个maven存储库(或一组存储库)来从中获取内容。解决问题的最佳方案是在组织的网络中安装本地maven存储库。对于运行不佳的maven存储库来说,两个最流行的选择似乎是和-它们都提供免费的开源版本和付费支持的pro版本

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

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

中心的
http://your.repo.location
您需要以类似的方式映射插件存储库。
如果您不想在pom文件中配置maven settings.xml文件,也可以通过在每个用户的主目录中配置maven settings.xml文件来实现这一点,但根据我的经验,这种方法不太容易出错,使用以下命令脱机构建
maven
项目

mvn -o package

有关更多信息,请参阅和

使用以下命令脱机构建
Maven
项目

mvn -o package

有关更多信息,请参阅和

我最终得到了一个聪明的破解,它让我能够进行依赖项解析和归档

我正在创建一个带有pom xml中定义的所有依赖项的虚拟maven web项目

现在,web应用程序默认使用war打包模式

我只是从面向internet的机器上安装maven项目

我在war文件的“lib”目录中获得所有依赖项和可传递依赖项,依赖项命名版本保持不变


那么,将这些文件复制并添加到ANT项目中是一项微不足道的任务

我最终得到了一个聪明的破解,它让我能够进行依赖项解析和归档

我正在创建一个带有pom xml中定义的所有依赖项的虚拟maven web项目

现在,web应用程序默认使用war打包模式

我只是从面向internet的机器上安装maven项目

我在war文件的“lib”目录中获得所有依赖项和可传递依赖项,依赖项命名版本保持不变

那么,将这些文件复制并添加到ANT项目中是一项微不足道的任务

但为此,他需要“预热”每台计算机上每用户的本地缓存…但为此,他需要“预热”每台计算机上每用户的本地缓存。。。