问题标签 [nexus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8480 浏览

java - 在本地网络中使用 Sonatype nexus

我已经成功地为 Java 应用程序创建了一个小型软件工程环境 (SEE),它是基于 maven 和 nexus 的工具之一。我的实际问题是——这并不奇怪——nexus 通常需要访问互联网才能从中央存储库中获取请求的工件。但是 SEE 必须严格脱机并且没有办法改变它(.. 安全原因)。

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

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

编辑

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

它会起作用吗?是否有关于如何在私有服务器上设置类似“中央”的文档,是否有同步选定工件的机制?

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

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

我们在完全与互联网断开连接的环境中使用 maven 的“最佳实践”:

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

每周对所有 POM 文件执行一次(可以自动化),您就拥有了一个非常稳定且可用的本地存储库。

0 投票
5 回答
5380 浏览

maven-2 - maven 仅部署更改的工件

我正在使用 maven 2.2 和 nexus 1.4.0

假设我有一个像这样的 pom 结构(有相应的版本)

childproj1 和 childproj2 代表应用程序的不同部分(例如 gui 和后端),我希望能够将它们的版本分开,这样我就可以发布后端的新版本而不必发布新版本的 gui。

现在,要将这个结构部署到 Nexus,可以方便地转到 parentproj 并说

mvn 部署 -DperformRelease=true

这会将所有工件部署到 Nexus realease 存储库。这在我第一次部署时运行良好,但第二次遇到问题:假设我对 childproj1 进行了更新,因此我们现在有以下版本:

在这种情况下,Nexus 不会让我从 parentproj 执行 mvn deploy,因为它在 1.0.7 版本中已经有了 childproj2 的副本。Nexus 会说“资源,非法请求:ID='releases' 的存储库不允许更新工件。” 这很好,我不想错误地更新现有版本。

但我想我想要做的是能够告诉 maven 诸如“仅部署那些具有发布存储库中尚未存在的版本的工件”之类的东西。

有没有办法做到这一点,还是我必须自己部署每个项目?

0 投票
1 回答
3602 浏览

maven-2 - 当警告“CHECKSUM FAILED”时如何让 Maven 部署失败

在 maven deploy maven 尝试从存储库中检索以前的元数据。如果它是损坏的 Maven 发出警告,调用构建成功但不上传我的工件。这是由我的存储库中的损坏引起的,我想在将来避免它,或者在构建失败时使其更加明显。

我可以更改我的 pom 以将此警告更改为错误,以便我很快看到它吗?

[INFO] Retrieving previous metadata from daeng-snap [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'ea12f35b3bc6d88f7336891562d91985b412bf1a'; remote = '51a6f4a52ad8f3926dbb28807317a90b9cd62ec1' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = 'ea12f35b3bc6d88f7336891562d91985b412bf1a'; remote = '51a6f4a52ad8f3926dbb28807317a90b9cd62ec1' - IGNORING [INFO] Uploading repository metadata for: 'artifact com.myco.xyz' [INFO] Uploading project information for xyz 5.0.2-20091224.163241-12 [INFO] Retrieving previous metadata from snaphots [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '00766e1a0130c3499442c06b52523960c5860f3c'; remote = 'c9bcfc92b3145688aa8ec77dcac244c70be4d0b4' - RETRYING [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '00766e1a0130c3499442c06b52523960c5860f3c'; remote = 'c9bcfc92b3145688aa8ec77dcac244c70be4d0b4' - IGNORING [INFO] Uploading repository metadata for: 'snapshot com.myco.xyz:xyz:5.0.2-SNAPSHOT'

0 投票
2 回答
2459 浏览

maven-2 - Nexus:删除存储库

我不小心从 Nexus 中删除了一个托管快照存储库,其中包含我团队中其他开发人员所需的一些工件。好的,我可以很容易地重新创建它,但是当我尝试再次添加与我删除的存储库同名的存储库时,“上传工件”选项卡没有显示。我试图清理缓存并重新索引公共和公共快照存储库,但这没有帮助。我还尝试通过在“覆盖本地存储位置”上输入替代路径来设置替代存储路径,结果相同。我是否必须创建一个具有不同名称的全新存储库并更改项目中的所有存储库引用?

谢谢,大卫

0 投票
1 回答
1378 浏览

m2eclipse - 如何让我在 Nexus 中的快照出现在 m2eclipse 依赖项搜索中?

这个周末我一直在研究Nexus 指南,并且我已经完成了所有设置,以至于我可以将快照发布到我的本地 nexus 安装。

我似乎无法弄清楚如何让 m2eclipse 查看快照并将其作为“添加依赖项”搜索面板中的选项提供。我怎么做?谢谢!

如果有任何用处,我的 settings.xml 如下:

0 投票
2 回答
325 浏览

maven - 是否可以在 nexus 中索引旧存储库?

我正在尝试将大型 maven1 安装迁移到 maven2。我已经安装了 nexus 1.5,创建了一个遗留的托管存储库和一个 m2 虚拟视图。Maven 2 构建脚本可以毫无问题地访问工件。唯一不起作用的是遗留存储库的关系索引。现在,旧托管存储库没有任何选项可包含在搜索中,并且虚拟 m2 视图似乎也未包含在索引中。

有什么方法可以使旧的遗留 maven 1 存储库可由 nexus 搜索?

0 投票
4 回答
3512 浏览

java - 在 Maven 2 中,是否可以为所有内容指定镜像,但允许故障转移到直接存储库?

我理解设置 Maven 镜像的部分吸引力,例如:

...是文档说明:

您可以强制 Maven 通过镜像所有存储库请求来使用单个存储库。

但是,这是否也表明通过设置镜像必须强制*每个工作站通过镜像?

我问是因为我希望每个工作站都进行故障转移并直接连接到它知道的任何公共存储库,以防 Nexus 无法解析依赖项或插件。(在一个完美的世界中,每个开发人员都有权根据需要添加额外的代理存储库。但是,有时该访问不可用;有时 Nexus 服务器出现故障;有时它会遇到 Java 堆错误。)

在 Maven 2 中,这种“镜像但直接连接到公共存储库”故障转移配置是否可行?它会出现在 Maven 3 中吗?

0 投票
2 回答
8120 浏览

maven-2 - 如何让 nexus 在 s3 上代理 springsource maven 存储库?

我已将 nexus 1.5.0 设置为代理 springsource 存储库,但它不起作用。存储库位于 s3 上,nexus 似乎不了解如何处理。

什么是正确的模式?

这是我被告知我需要的存储库,但我无法访问其中的 Maven 路径

http://repository.springsource.com/maven/bundles/release http://repository.springsource.com/maven/bundles/external

我需要在本地镜像这些吗?

0 投票
2 回答
377 浏览

maven-2 - Maven Repository 代理第三方存储库,这会产生流量吗?

我们有一个公共Sonatype Nexus Maven Repository,它是几个第三方存储库的代理,例如 JBOSS 或 Scala-Repo。

下载位于代理存储库之一(例如 JBOSS)中的工件是否会在运行我们的存储库的服务器上产生流量?

0 投票
2 回答
3868 浏览

eclipse - m2eclipse中的依赖问题

我对 m2eclipse 和 Nexus 有疑问。通常,当您在 Eclipse 中创建一个新的 Maven 项目时,您可以从 Nexus Indexer 中选择一个 Archetype,例如 maven-archetype-quickstart。不幸的是,Nexus Indexer 根本没有显示任何内容。但最糟糕的是,“添加依赖项”菜单不起作用。(为了更好地理解:通过单击“依赖项”选项卡,您通常可以单击一个按钮以输入 groupId 或 artifactId。这就是我正在谈论的菜单。如果我输入例如“junit”,它显示没有搜索结果。)有人知道这个问题吗?我该如何解决?

提前一百万感谢您的帮助。