Почему библиотеки из репозитория maven не компилируются? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть интересная задача собрать несколько библиотек из репозитория проекта.

  1. Я получаю jar с исходниками библиотеки, используя mvn dependency: sources.

  2. Я распаковал java файлы в папку src / main / java.

  3. Я запускаю 'maven clean install'

Некоторые библиотеки компилируются нормально, но некоторые нет - некоторые пакеты не найдены, потому что они не в исходных кодах jar и не в библиотеке pom. xml. Почему авторы библиотек делают это?

Например, попробуйте скомпилировать эту библиотеку: https://repo1.maven.org/maven2/edu/ucar/netcdf/4.2/

Ошибка: пакет ucar.unidata.util не существует. И где и как я должен получить этот пакет? И почему авторы не включают это в файл jar или pom?

Проблема огромная, затронута не только эта библиотека.

1 Ответ

0 голосов
/ 25 марта 2020

Хотя я не понимаю конкретной ошибки, которую вы допустили, позвольте мне заявить, что в общем случае невозможно перестроить банку, если у вас есть только исходная банка и POM.

Множество вещей может отсутствовать, например, ресурсы, тесты и сама структура проекта (если это был многомодульный проект), а некоторые POM «сплющены», так что важный плагин вызывает et c. удаляются.

Так что вам нужно привыкнуть к тому, что это может или не может работать.

Обычно люди просто используют банку как есть. Если по каким-то причинам (которые вы не раскрываете, хотя я и просил вас дважды) вам необходимо скомпилировать из исходного кода, я могу (в следующем порядке):

  1. Искать github / gitlab страницу проекта (часто указывается в POM, или вы найдете его в Google) и нарисуйте проект оттуда.

  2. Возьмите с собой источники и POM, пока не сможете скомпилировать проект ( как и при любом сломанном проекте). Это может или не может быть успешным.

  3. Не используйте библиотеку, а напишите необходимые вещи самостоятельно.

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