Как исправить ошибку «Отсутствует требование» в Maven в Windows - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь собрать dbeaver и получить следующую ошибку при запуске mvn package:

[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: org.jkiss.dbeaver.slf4j 1.0.0.qualifier
[ERROR]   Missing requirement: org.jkiss.dbeaver.slf4j 1.0.0.qualifier requires 'bundle org.slf4j.api 0.0.0' but it could not be found

Я работаю в Windows 10 и использую apache-maven-3.6.1. Странно то, что когда я пытаюсь выполнить те же действия в Linux, он собирается без проблем.

1 Ответ

0 голосов
/ 20 июня 2019

Обновление

Возможная причина maven 3.6.1 https://www.eclipse.org/lists/tycho-user/msg08177.html

Исходное сообщение

Проблема здесь,Я предполагаю, что на сайте https://dbeaver.io/eclipse-repo/ p2 отсутствует пакет slf4j, и Tycho (?) Не может выполнить требование.Я до сих пор не знаю, как заставить работать автономную сборку maven, но вот уродливый обходной путь, как собирать бинарный файл Windows с Eclipse (и встроенным maven).

Вы можете использовать p2-maven-plugin чтобы создать этот недостающий комплект самостоятельно.Вместо того, чтобы настраивать новый проект, вы можете временно изменить product\localRepository\pom.xml, чтобы иметь один артефакт, такой как

...
<artifacts>
  <artifact><id>org.slf4j:slf4j-api:1.7.26</id></artifact>
</artifacts>
...

Теперь создайте этот (product\localRepository\) проект и запустите Jetty

mvn p2:site
start mvn jetty:start

Теперь вы можете добавить этот промежуточный сайт обновлений (http://localhost:8080/site/) к вашей установке Eclipse (Справка -> Установить новое программное обеспечение) и установить slf4j.Вы уже должны иметь возможность запускать DBeaver из Eclipse.

Чтобы создать двоичный файл, добавьте это промежуточное хранилище в основной файл pom.xml, например, сразу после local-контриб один.

    <repository>
        <id>more</id>
        <url>http://localhost:8080/site/</url>
        <layout>p2</layout>
    </repository>

Затем перейдите в «Выполнить конфигурации» -> «Сборка Maven» -> dbeaver, введите пакет цель и отметьте Пропустить тесты , нажмитеБеги и иди выпей кофе.

enter image description here

Как вы можете видеть, Eclipse использует своего рода встроенную среду выполнения maven, так что я думаю, что она решает проблемы по-другому.

Обратите внимание , что если вы обновляете локальное git-репо, вам может понадобиться обновить ваш проект Eclipse.Мне не удалось сделать это, щелкнув правой кнопкой мыши по проекту -> Настроить -> Настроить и обнаружить вложенные проекты :( Но удаление проекта Eclipse и вложенных проектов (без удаления базовых файлов) и повторный импорт проекта Maven помогли мне.

Существует также открытый вопрос для этого https://github.com/dbeaver/dbeaver/issues/6115.

...