dummy:dummy:jar:1.0、surefire-junit4、maven和Nexus

dummy:dummy:jar:1.0、surefire-junit4、maven和Nexus,maven,nexus,surefire,Maven,Nexus,Surefire,因此,我们最近为maven repository manager实现了一个Nexus服务器。我们代理大约30个外部存储库,并将它们全部集中到一个组中,我们在镜像中的settings.xml中用* 在那之前,我们没有这个问题。。。现在我们做到了。让我沮丧的是,关于这个虚拟罐子的信息很少,它来自哪里,或者我可以从哪里得到它来阻止这些失败。我已经研究了几天,什么也没找到。我希望社区能够提供帮助 18-Oct-2012 22:50:31 [ERROR] BUILD ERROR 18-Oct-2012

因此,我们最近为maven repository manager实现了一个Nexus服务器。我们代理大约30个外部存储库,并将它们全部集中到一个组中,我们在镜像中的settings.xml中用*

在那之前,我们没有这个问题。。。现在我们做到了。让我沮丧的是,关于这个虚拟罐子的信息很少,它来自哪里,或者我可以从哪里得到它来阻止这些失败。我已经研究了几天,什么也没找到。我希望社区能够提供帮助

18-Oct-2012 22:50:31 [ERROR] BUILD ERROR 
18-Oct-2012 22:50:31 [INFO] ------------------------------------------------------------------------ 
18-Oct-2012 22:50:31 [INFO] Unable to generate classpath: org.apache.maven.artifact.resolver.ArtifactResolutionException: Unable to get dependency information: Unable to read the metadata file for artifact 'org.apache.maven.surefire:surefire-junit4:jar': Cannot find parent: org.apache.maven.surefire:surefire-providers for project: null:surefire-junit4:jar:null for project null:surefire-junit4:jar:null 
18-Oct-2012 22:50:31 org.apache.maven.surefire:surefire-junit4:jar:2.12 
18-Oct-2012 22:50:31 
18-Oct-2012 22:50:31 from the specified remote repositories: 
18-Oct-2012 22:50:31 central (http://repo1.maven.org/maven2), 
18-Oct-2012 22:50:31 JavaNet-mirror (http://maven:8081/nexus/content/repositories/Java.net/), 
18-Oct-2012 22:50:31 Releases (https://nexus:8443/nexus/content/repositories/releases/) 
18-Oct-2012 22:50:31 
18-Oct-2012 22:50:31 Path to dependency: 
18-Oct-2012 22:50:31 1) dummy:dummy:jar:1.0 

听起来像是网络问题

或者有什么东西阻止了internet访问(防火墙或防病毒软件,只是暂时禁用它以下载依赖项)

或者这个罐子太大了,可以从

已知限制:

主要的限制是不能下载不完全适合内存的数据

解决方法是增加Maven的内存:

export MAVEN_OPTS="-Xmx1024m"

请参阅:

我们遇到了一个类似的问题,开发人员在测试层次结构中放置了一个名为“TestUtil”的类,而该类实际上与单元测试没有任何关系。将类重命名为不包含测试前缀的内容为我们解决了这个问题。但我不知道这是怎么回事

AFAIK dummy.jar是surefire插件内部使用的东西,但通常不会向最终用户公开。“dummy.jar”可以在surefire插件源代码中看到(和)


因此,在我们的例子中,“TestUtil”类导致了问题的出现,导致了类似的情况,但为了验证它是否更符合逻辑,请始终使用设置了调试日志标志的maven运行。

我遇到了相同的问题,并检查了nexus中可用的surefire-junit4的版本。它是2.12,我为我的maven surefire插件声明了2.17版本。我认为这又取决于surefire-junit4版本2.17,这是我们的nexus无法提供的。不管它是什么,都是非常令人沮丧的,但当我将surefire插件版本降级到2.12时,它就消失了,因为可以从我们的nexus下载正确的surefire-junit4依赖项,然后一切都很好


似乎您没有可用的2.12版本,因此您可能必须返回到nexus中可用的任何版本。

在我的情况下,我没有指定surefire插件的版本。e、 g:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/*_UT.java</include>
                    <include>**/*_FT.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

maven surefire插件
**/*_UT.java
**/*_java
。。。这很有效。但是,我升级了我的Maven命令行客户端,得到了这个。解决方案会根据您想要做的事情而有所不同(向公司回购协议中添加缺失的工件、硬编码surefire版本、降级Maven),但理解为什么对我来说是重要的部分


希望这对其他人有所帮助。

我的问题通过清除java oracle中的ca证书并将其重新安装到ubuntu上得到了解决,我刚刚按照答案进行了操作


运行
mvn dependency:tree
并查看
dummy:dummy:jar:1.0
来自何处。@b.需要澄清吗?当然,很抱歉投了反对票(我现在无法撤消)。我做了更多的研究,我想你可能有什么发现,但我不相信你是对的。A似乎表明这个问题与单元测试有关(特别是surefire)。我喜欢@noahlz,尽管我不知道它是否能帮助任何人找到问题的根源。我在我的环境中尝试了它,但根据dummy.jar找不到任何东西,但是我的网络昨天很糟糕,所以我倾向于认为这实际上可能与网络问题有关,如.@b.long中所述。我稍微扩展了我的答案。我认为这个评论是错误的原因是surefire插件在内部使用dummy.jar-它不应该向最终用户公开,但出于某种原因,在某些情况下它是这样做的。好吧,你赢得了我:)谢谢你的编辑,我非常喜欢让so内容越来越好。当我最初投了反对票时,我感到脾气暴躁。这对我很有效。当我运行
mvn clean install
时,我没有连接到internet,但在阅读了你的答案后,我尝试连接到internet并重新尝试,它成功了。这个特定的答案帮助了我(旧版本):@KimballRobinson我根据你的评论为答案添加了更多细节,谢谢。
$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java