Есть ли способ заменить зависимость maven, ранее размещенную на pyx4me.com? - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь создать большую кодовую базу java, которая использует maven в качестве инструмента для сборки. Тем не менее, построение (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, так что я немного потерян, что делать.

Я пытался вручную установить maven-junction-plugin в локальный каталог .m2. Тем не менее, это было до того, как я понял, что пропадает не .jar, а какая-то зависимость от этого jar.

Я был бы очень благодарен за любые подсказки или советы от кого-то, кто знает что-нибудь о maven.

1 Ответ

0 голосов
/ 06 января 2020

Проблема, с которой вы столкнулись, заключается в следующем: несмотря на то, что артефакт maven-junction-plugin версии 1.0.3 доступен в центральном репозитории maven, он пытается загрузить зависимость под названием sysinternals: junction: exe: 1.04 с (http://www.pyx4me.com/maven2), но время соединения истекло (Вы также можете попробовать пропинговать pyx4me.com, и вы обнаружите, что оно не отвечает).

The maven -junction-plugin был использован Apache Flink до версии 1.2. Текущие стабильные версии 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 в вашем локальном репозитории со следующими свойствами артефакта:

  • идентификатор группы: идентификатор вашей группы
  • идентификатор артефакта: соединение
  • версия: 1.07
  • тип: exe

Вы можете использовать установку 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>

вы можете удалить старые репозитории * Раздел 1050 *, так как удаленный репозиторий все равно не работает.

На мой взгляд, это слишком много взлома (и вам, вероятно, будет трудно убедить своих коллег сделать что-то подобное в производстве). Поэтому я предлагаю попытаться найти эквивалент функциональности, для которой вы используете этот плагин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...