gpt4 book ai didi

linux - 远程 http archetypeCatalog 在 Linux 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:33:22 25 4
gpt4 key购买 nike

我创建了一个 Maven 原型(prototype)并上传到 Nexus 存储库。我可以在 Windows 上使用“mvn archetype:generate -DarchetypeCatalog= http://myhost:8080/nexus/content/repositories/my-snapshots/archetype-catalog.xml”命令基于该原型(prototype)生成一个项目。目录 xml 有效,我可以手动从浏览器打开。

现在我在 Linux 上按照相同的步骤,将 conf/setting.xml 中的服务器部分和存储库配置文件配置为与 Windows 相同的内容。 Maven 报告“未定义目录。使用内部目录”。 Maven 似乎没有阅读“-DarchetypeCatalog=...”部分。

调试日志如下。 Maven 版本是 3.3.9。该问题在 Redhat 和 Ubuntu 上重现。希望任何人都可以提出解决方案。谢谢。

[DEBUG] RuntimeInstance successfully initialized.
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-archetype-plugin:3.0.0:generate' with basic configurator -->
[DEBUG] (f) archetypeCatalog = http://myhost:8080/nexus/content/repositories/my-snapshots/archetype-catalog.xml
[DEBUG] (f) basedir = /opt/testmaven
[DEBUG] (f) interactiveMode = true
[DEBUG] (f) localRepository = id: local
url: file:///root/.m2/repository/
layout: default
snapshots: [enabled => true, update => always]
releases: [enabled => true, update => always]

[DEBUG] (f) remoteArtifactRepositories = [ id: my-snapshots
url: http://myhost:8080/nexus/content/repositories/my-snapshots
layout: default
snapshots: [enabled => true, update => always]
releases: [enabled => false, update => always]
, id: central
url: https://repo.maven.apache.org/maven2
layout: default
snapshots: [enabled => false, update => daily]
releases: [enabled => true, update => daily]
]
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@4943defe
[DEBUG] -- end configuration --
[INFO] Generating project in Interactive mode
[INFO] No catalog defined. Using internal catalog
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
.......

最佳答案

在settings.xml中,我们需要配置一个镜像:

<mirrors>
<mirror>
<name>Local Nexus Mirror</name>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://myhost:8080/nexus/content/groups/public</url>
</mirror>
</mirrors>

一旦您将 Nexus 配置为所有存储库的镜像,Maven 现在将查询 Nexus 的本地安装,而不是转到中央 Maven 存储库。

如果 Nexus 请求了 Artifact , Artifact 将从本地 Nexus 安装提供。

我们可以尝试指定 -DarchetypeCatalog=remote-DarchetypeCatalog=local同时通过 mvn archetype:generate 生成 Maven Artifact .

如果本地有archetype-cataog,我们可以直接使用-Dcatalog=<url>

关于linux - 远程 http archetypeCatalog 在 Linux 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42669824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com