11

所以我们最近为我们的 Maven 存储库管理器实现了一个 Nexus 服务器。我们代理了大约 30 个外部存储库,并将它们全部集中到一个组中,我们在 settings.xml 中的镜像中用 *.xml 指向它们。

在那之前,我们没有这个问题……现在我们有了。令我沮丧的是,关于这个虚拟 jar 的信息很少,它来自哪里,或者我可以从哪里得到它来阻止这些故障。我已经研究了几天,但一无所获。我希望社区可以提供帮助。

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 
4

5 回答 5

3

我们有一个类似的问题,开发人员在测试层次结构中放置了一个名为“TestUtil”的类,而该类实际上与单元测试根本不相关。将类重命名为不包含 Test 前缀的东西为我们解决了这个问题。虽然不知道它是关于什么的。

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

所以在我们的例子中,“TestUtil”类导致问题出现,导致类似的情况,但为了验证它不是更合乎逻辑的事情,总是运行一个带有-X调试日志标志的 maven。

于 2013-10-16T11:40:00.587 回答
2

这听起来像一个网络问题。

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

或者 jar 太大,需要从http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight/下载

已知限制:

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

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

export MAVEN_OPTS="-Xmx1024m"

请参阅:Maven 无法下载 jar 依赖项

于 2013-05-28T14:45:21.893 回答
0

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

好像你没有可用的 2.12,所以也许你必须回到你的关系中可用的任何东西。

于 2014-11-21T16:32:44.913 回答
0

我的问题是通过在 ubuntu 上从 java-oracle 清除并重新安装 ca 证书来解决的,我只是按照答案

https://stackoverflow.com/a/33440168/9827406

$ sudo dpkg --purge --force-depends ca-certificates-java
$ sudo apt-get install ca-certificates-java
于 2018-07-26T06:41:30.087 回答
0

就我而言,我没有指定surefire插件的版本。例如:

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

...效果很好。但后来我升级了我的 Maven 命令行客户端并得到了这个。解决方案因您想要做的事情而异(将缺少的工件添加到您的公司回购,硬编码肯定版本,降级 Maven),但理解为什么对我来说很重要。

希望这可以帮助那里的人。

于 2016-03-28T17:20:22.200 回答