Maven无法从远程nexus存储库中找到依赖项

时间:2012-06-15 15:14:36

标签: maven jar repository nexus sonatype

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

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

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

==== UPDATE ====

当我摆弄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>

1 个答案:

答案 0 :(得分:0)

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

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