有没有办法替换以前由 pyx4me.com 托管的 maven 依赖项?



我正在尝试构建一个使用Maven作为构建工具的大型Java代码库。 但是,构建 (mvn clean install -DskipTests( 总是导致以下错误:

[ERROR] Failed to execute goal com.pyx4j:maven-junction-plugin:1.0.3:unlink (unlink) on project flink-dist_2.10:  Execution unlink of goal com.pyx4j:maven-junction-plugin:1.0.3:unlink failed: Plugin com.pyx4j:maven-junction-plugin:1.0.3 or one of its dependencies could not be resolved: Failed to collect dependencies for com.pyx4j:maven-junction-plugin:jar:1.0.3 (): Failed to read artifact descriptor for sysinternals:junction:exe:1.04: Could not transfer artifact sysinternals:junction:pom:1.04 from/to pyx4me-web (http://www.pyx4me.com/maven2): Connection to http://www.pyx4me.com refused: Connection refused (Connection refused) -> [Help 1]

我对 maven 一无所知,所以我不知道该怎么做。

我尝试在本地 .m2 目录中手动安装 maven-junction-plugin。然而,那是在我明白缺少的不是.jar之前,而是那个罐子的一些依赖性。

如果有人对maven有所了解,我将不胜感激。

您遇到的问题如下:即使 maven-junction-plugin 工件 1.0.3 版本在 Maven 中央存储库中可用,它也会尝试从 (http://www.pyx4me.com/maven2( 下载一个名为sysinternals:junction:exe:1.04的依赖项,但连接超时(您也可以尝试 ping pyx4me.com,您会发现它没有响应(。

maven-junction-plugin 在 1.2 发布之前被 Apache Flink 使用。 当前稳定版的 Apache Flink 不再使用它。事实上,该项目似乎被放弃了,不再受支持。

请参阅以下 maven 的中央 Jira 票证,要求将其从 maven Central 中删除。

所以看起来没有简单的方法来做你想做的事情。 但是你也许可以破解它。

首先,看起来 systinternal:junction:1.04 在任何地方都不可用,但 1.07 版本在这里可用(它可能与 maven-junction-plugin 1.04 不兼容,所以你需要对其进行足够的测试以确保它是(

该 zip 包含两种风格的.exe(32 位和 64 位版本(。使用适合您需要的版本并将其安装到本地存储库中。

在本地存储库中安装工件的一般方法是此处描述的方法,但由于我们正在处理.exe文件,因此您宁愿使用此处描述的过程

现在,假设您已经在本地存储库中成功安装了具有以下工件属性的 systinernal:junction:1.07:

  • groupId:您的组 ID
  • 工件 ID:交汇点
  • 版本: 1.07
  • 类型: 执行

您可以使用在本地存储库中安装 jar 方法来安装插件的 jar 以及自定义版本的 pom,其中指向本地版本的 systinternal:junction 依赖项而不是原始版本。您可以在此处找到这两个文件。

然后,自定义 pom 的依赖项部分将如下所示:

<dependencies>
<dependency>
<groupId>your-group-id</groupId>
<artifactId>junction</artifactId>
<version>1.07</version>
<type>exe</type>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
</dependencies>

您可以删除旧存储库部分,因为远程存储库无论如何都不起作用。

在我看来,这太像黑客了(你可能很难说服你的同事在生产中带来这样的东西(。因此,我建议尝试找到您使用此插件的功能的等效项。

最新更新