我在没有互联网代理的私人网络中工作。
我无法创建一个涉及官僚机构的本地存储库,管理层也不会允许它。我可能是一个长期修复但不是我问的问题的解决方案。
我无法将maven作为构建工具,因为它需要直接或间接的互联网连接。
我必须使用ANT来构建项目,因此在离线模式下使用maven也不是我的选择。
但我仍然希望使用maven依赖关系管理来巧妙地收集一个存档中的所有jar。
我的计划是生成一个ZIP文件,其中包含使用maven解析的依赖项。然后我们将把这个ZIP文件分享给在没有互联网连接的专用网络内工作的所有开发人员。
为此,我将临时访问具有互联网连接的计算机,并从那里我将定义一个虚拟POM,其中包含所有必需的依赖项。
现在的问题是我如何使用包含POM中定义的所有依赖项的maven生成ZIP文件(而不是单个jar)。
答案 0 :(得分:1)
虽然你提出的建议在技术上是可行的,但(在我看来)并不是你问题的最佳解决方案。
你的陈述
it requires the direct or indirect internet connection
不准确。 maven需要的是一个maven存储库(或其中一组)来从中获取东西。解决您问题的最佳方法是在组织的网络中安装本地maven存储库。对于一个运行良好的maven存储库来说,最受欢迎的两个选择似乎是nexus和artifactory - 它们都提供免费的开源版本和付费支持的专业版本。
一旦在组织的网络中设置了maven存储库并使用您需要的工件填充它,您可以简单地将所有项目的pom文件配置为转到这些存储库。例如,要将maven配置为使用repo而不是maven central,您可以执行以下操作:
<repositories>
<!-- override central -->
<repository>
<id>central</id>
<url>http://your.repo.location</url>
</repository>
</repositories>
您需要以类似的方式映射插件存储库。 它也可以通过在每个用户的主目录中配置maven settings.xml文件来实现这一点,如果你不想在pom文件中这样做,但从我的经验来看,这种方式不易出错
答案 1 :(得分:0)
答案 2 :(得分:0)
我最终得到了一个智能黑客,让我可以进行依赖解析和存档!
我正在创建一个虚拟的maven web项目,其中包含在pom xml中定义的所有依赖项。
现在,战争打包模式默认用于Web应用程序。
我只是从面向互联网的机器安装maven项目。
我在war文件的“lib”目录中获取所有依赖项和传递依赖项,并且依赖项命名版本保持不变!!!!
将这些文件复制并添加到ANT项目中是一项微不足道的任务,然后......!