使用nexus设置缺少maven依赖

时间:2010-09-14 00:30:29

标签: testing maven-2 nexus dependency-management

我正在尝试构建一个maven项目来测试一些测试软件 - Arquillian。

我设置nexus并将jboss存储库添加到公共组的底部。

当我运行mvn test时,我收到此错误:

Missing:
----------
1) com.sun.istack:istack-commons-runtime:jar:1.1-SNAPSHOT

  Try downloading the file manually from the project website.

  Then, install it using the command:
      mvn install:install-file -DgroupId=com.sun.istack -DartifactId=istack-commons-runtime -Dversion=1.1-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there:
      mvn deploy:deploy-file -DgroupId=com.sun.istack -DartifactId=istack-commons-runtime -Dversion=1.1-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

  Path to dependency:
        1) org.jboss.arquillian.sandbox.showcase:arquillian-sandbox-showcase-jsf:jar:1.0.0-SNAPSHOT
        2) org.jboss.jbossas:jboss-as-client:pom:6.0.0.20100721-M4
        3) org.jboss.jbossas:jboss-as-iiop:jar:client:6.0.0.20100721-M4
        4) org.jboss.jbossts:jbossjts:jar:4.11.0.Final
        5) org.jboss.ws.native:jbossws-native-core:jar:3.3.0.CR1.SP2
        6) com.sun.xml.ws:jaxws-rt:jar:2.2
        7) com.sun.xml.ws:policy:jar:2.0-b01
        8) com.sun.istack:istack-commons-runtime:jar:1.1-SNAPSHOT

我检查了java.net maven 2存储库,它肯定是there

然而,当我导航到我当地的nexus公共团体时,它并不存在。

我该如何解决这个问题?造成这个问题的原因是什么?我对此很感兴趣,因为我更习惯使用ant + ivy。

mvn的完整输出是here

5 个答案:

答案 0 :(得分:3)

我显然是完全相同的问题。我解决了 在我的情况下,问题是托管istack-common-runtime-1.1.0-SNAPSHOT的存储库在配置的nexus代理存储库中被标记为“release”。所以nexus忽略了该存储库中的所有快照。 我刚刚配置了另一个代理存储库,指向包含istack-common-runtime-1.1.0-SNAPSHOT的同一个代理存储库,但在配置它时将其标记为“SNAPSHOT”。然后我将这个新代理添加到我的“SNAPSHOT”组。

在我的settings.xml中,我在公共nexus组上有一个存储库,在快照组上有另一个存储库:

<profiles>
    <profile>
        <id>nexus</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>release</id>
                <url>http://nexus-server/nexus/content/groups/public</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>snapshots</id>
                <url>http://nexus-server/nexus/content/groups/public-snapshots</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>

希望这个帮助

答案 1 :(得分:1)

如果您使用nexus网络界面进行搜索,是否会显示?我在nexus安装中看到过这样的情况,其中的工件看起来像是这样丢失,但会出现在搜索结果中。如果我然后通过我的浏览器从搜索结果中下载它,它会神奇地开始在maven命令行工作。

不是你想要听到的强大解决方案,我敢肯定,但至少值得一试。

答案 2 :(得分:1)

如果您已将JBoss存储库添加到Nexus,您是否记得配置公共存储库组以包含它?

以下是截图:

alt text

答案 3 :(得分:0)

你是否在公司防火墙后面?可能需要在Nexus中配置HTTP代理(请参阅服务器管理屏幕)

答案 4 :(得分:0)

结束了一个糟糕的依赖。我不得不手动添加它以使其全部工作。可怕!