【问题标题】:Maven cannot find dependencies from remote nexus repositoryMaven 无法从远程 nexus 存储库中找到依赖项
【发布时间】:2023-03-30 00:08:01
【问题描述】:

我今天不得不从旧的 Nexus 服务器迁移到 Nexus OSS v2.0.4。从早上开始,我一直面临着奇怪的问题。首先我安装了nexus并启动它,我只能从服务器机器上浏览它一次,然后就不能再浏览它了。但后来我可以从网络中的所有其他机器访问服务器(使用 http://remote.hostname:8081/nexus )。

然后我从旧服务器机器上复制了存储目录的所有内容,并将它们一一粘贴到新机器中。 (对于每个存储库,在新服务器中创建一个存储库并将local storage Location 作为我从旧服务器复制的目录)。现在我可以看到我拥有的所有罐子,但是当我尝试从 maven 使用它们时,我无法这样做。意思是,如果我尝试运行一个 Maven 项目,那么它会说找不到依赖项。我可以看到它正在新服务器中的位置寻找 jar,但无法下载它。知道为什么它无法下载 jar 包吗?

另外我仍然无法从服务器机器的浏览器访问新的nexus服务器,为什么会这样?任何建议将不胜感激。谢谢。

====更新====

当我摆弄 maven 时,我发现我能够从公共存储库访问依赖项,但不能从一个特定的存储库访问(目前我只知道一个)。这可能是因为某种原因吗?我怀疑迁移有问题,这是从一台服务器迁移到另一台服务器的正确方法吗?

此外,所有代理存储库的状态均为In service-Remote automatically blocked and unavailable。这是否与我的问题有关?

===Settings.xml===

<settings>

  <localRepository>${env.TEST_HOME}\maven.repository</localRepository>

<proxies>
<proxy>
  <id>Compproxy</id>
  <active>true</active>
  <protocol>http</protocol>
  <username></username>
  <password></password>
  <host>proxy.abc.com</host>
  <port>81</port>
  <nonProxyHosts>*.abc.com|rick*</nonProxyHosts>
</proxy>
</proxies>
    <servers>
<server>
    <id>MyRep</id>
  <username>admin</username>
  <password>admin123</password>
</server>
</servers>
<mirrors>
<mirror>
  <id>central mirror</id>
  <url>http://rick1.abc.com:8081/nexus/content/groups/public</url>
  <mirrorOf>central</mirrorOf>
 </mirror>
 <mirror>
  <id>opensymphony mirror</id>
  <url>http://rick1.abc.com:8081/nexus/content/groups/public</url>
  <mirrorOf>opensymphony</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
  <id>actProf</id>
  <repositories>
    <repository>
        <id>public</id>
        <url>http://rick1:8081/nexus/content/groups/public</url>
    </repository>
    <repository>
        <id>MyRep</id>
        <url>http://rick1:8081/nexus/content/repositories/MyRep</url>
    </repository>
  </repositories>
  <properties>
  </properties>        
</profile>
</profiles>
<activeProfiles>
<activeProfile>actProf</activeProfile>
</activeProfiles>
</settings>

===pom.xml===

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.abc.test</groupId>
  <artifactId>testgui_start</artifactId>
  <packaging>pom</packaging>
  <version>1</version>
  <name>Start POM Test GUI</name>
  <url>www.abc.com</url>
  <build>
<plugins>
</plugins>
</build>
  <dependencies>
  <dependency>
    <groupId>com.abc.test</groupId>
    <artifactId>testgui</artifactId>
    <version>${version}</version>
    <scope>runtime</scope>
  </dependency>
</dependencies>
</project>

【问题讨论】:

  • 我在下面删除我的答案。它对你没有帮助,而且看起来你已经得到了一些帮助!

标签: maven jar repository nexus sonatype


【解决方案1】:

您必须做的一件事是将您创建的所有存储库添加到公共组,以便它们可供 Maven 使用,前提是您使用仅引用公共组的标准 settings.xml。

此外,我会停止并重新启动服务器,并仔细查看日志并报告更多信息。它可能被设置为侦听特定端口等。还要记住,当我们迁移到 2.0 时,启动脚本发生了变化,因此您必须替换您放置的旧脚本,例如在 /etc/init.d/ 中。

【讨论】:

  • 感谢您的回复。我不明白为什么要在 public 组中添加所有依赖项。我想将它们放在为网络私下定义的另一个特定组中。我错过了什么吗?我在 Maven 的 conf 文件中添加了组详细信息。我确实尝试重新启动服务器并检查了日志,但不幸的是找不到任何可疑的东西。我已经更改了操作系统本身,因此旧的不再存在。但我无法使用 Linux 操作系统,不幸的是我不得不在 Windows 上安顿下来。
  • 您可能必须显示您的 settings.xml 文件以确定它是否可以按照您的设置方式工作。还有项目的 pom.xml 可能无法正常工作..
  • 我已经用 settings.xml 和 pom.xml 更新了这个问题。谢谢。
  • 大家好,我不知道错误是什么,但它现在开始正常工作了。唯一存在的问题是服务器中的代理存储库仍然具有Remote Automatically blocked and Unavailable 状态
猜你喜欢
  • 2019-02-01
  • 2021-10-23
  • 1970-01-01
  • 2014-04-13
  • 2012-01-10
  • 2015-02-17
  • 2016-06-12
  • 2014-06-23
  • 1970-01-01
相关资源
最近更新 更多