相关疑难解决方法(0)

禁用Maven中央存储库

我公司的政策对自动下载的工件(它们必须得到批准)不满意,所以为了使用Maven,我需要禁用对Maven中央存储库的访问.

换句话说,我不希望Maven尝试从中央进行任何下载.

我知道如何配置本地存储库(联网或不联网),我的想法是使用"祝福"机器来更新本地存储库.

PS:我可以阻止代理/网络级别的请求,但我问的是如何使用Maven的配置.

更新 我终于想出了如何做到这一点.在maven的家中,conf目录中是全局的settings.xml.您可以将镜像设置为central指向某个内部服务器,也可以覆盖它的定义.

configuration repository maven

52
推荐指数
5
解决办法
6万
查看次数

在本地网络中使用Sonatype nexus

我已经成功地为Java应用程序创建了一个小型软件工程环境(SEE),其中包括基于maven和nexus的其他工具.我的实际问题是 - 并不是一个真正的惊喜 - nexus通常需要访问互联网才能从中央存储库获取所请求的工件.但SEE必须严格脱机,并且无法改变它(安全原因).

我的第一个快速解决方案是镜像连接到互联网的机器上的nexus/maven安装,运行一些标准的pom来填充镜像连接并通过CD-ROM将缓存迁移到目标系统.蛮丑的.我真的不希望调整该过程来获取工件或新工件的更新.实际上,我们现在通常只是导入我们需要的库并使用来自中央和其他人的官方库来创建新的工件(使用nexus).

有没有人面临同样的挑战,找到了更聪明,更有效的方法?

编辑

感谢所有的答案,我想我必须更准确地解决实际问题以及我正在考虑的解决方案:我认为我必须创建,填充和同步一个私有的"中央"存储库,基于中央和互联网上的其他回购,或者确切地说:两个相同的存储库.一个连接到互联网,另一个连接到本地网络.然后我可以保持互联网连接的存储库"最新"并通过DVD将更改复制到本地存储库 - 这对于Nexus是可见的.

会有用吗?是否有关于如何在私有服务器上设置"中心"之类的文档,是否有一种同步所选工件的机制?

(我不想在开始时发表我的想法,因为我希望得到完全不同的想法)

编辑2 - "最佳实践" - 根据要求添加

我们在与互联网完全脱节的环境中使用maven的"最佳实践":

  • 我们在中央服务器上安装了nexus,以便软件开发工作站有一台服务器可以与之通信(这是我们自己的artefact存储库)
  • 我们将POM文件导出到具有Internet访问权限的工作站,清除了该计算机上的本地存储库并执行了dependency:go-offline(插件).这将使用所有必需的artedfacts填充本地存储库
  • 我们将此本地存储库导入安全环境并将所有插件添加到nexus(只复制文件 - 结构相同)

每周使用所有POM文件执行此操作(可以自动执行),并且您拥有一个非常稳定且可用的本地存储库.

java maven-2 nexus

16
推荐指数
1
解决办法
7624
查看次数

maven存储库镜像

通常,我在Maven中配置了以下镜像 settings.xml

<mirror>
  <id>internal-repository</id>
  <url>http://build.idaho.local/wtp_repository</url>
  <mirrorOf>*</mirrorOf>
</mirror>
Run Code Online (Sandbox Code Playgroud)

我的理解是这个镜像阻止了Maven从互联网上下载依赖关系,即它只会在这个内部存储库中查找它们.

但是,每当我想要添加不在此内部存储库中的依赖项时,我必须注释掉上面的文本并将以下内容添加到项目中 pom.xml

<repository>
  <id>internal-repository</id>
  <url>http://build.idaho.local/wtp_repository</url>
</repository>
Run Code Online (Sandbox Code Playgroud)

当我进行这些更改时,Maven将检查本地仓库中的依赖项,如果没有找到,则将它们从Internet下载到本地仓库.一旦我拥有了我需要的依赖项,我就会改回配置.

有没有办法获得我想要的行为 - 总是检查内部仓库,然后检查公共(互联网)回购 - 而不必添加<repository>到每个项目的pom.xml

理想情况下,我想在settings.xml此处指定此存储库,但似乎您只能在那里配置镜像.

maven-2

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

maven-2 ×2

configuration ×1

java ×1

maven ×1

nexus ×1

repository ×1