Классы из зависимости (файл Jar) не разрешаются, что приводит к ошибке компиляции - PullRequest
1 голос
/ 20 апреля 2019

У меня есть проект gradle, который в настоящее время работает нормально.Теперь мне нужно добавить библиотеку Java (упакованную как Jar) в качестве зависимости и использовать классы, определенные в файле Jar.Это прекрасно работает, если я использую flatDir в качестве хранилища в build.gradle,

repositories { mavenCentral() flatDir { dirs '../java_library/build/libs' } }

, а затем в зависимостях,

compile name: "java_library-0.0.1"

Затем я могу легко импортировать классы из библиотеки в свой собственный код, сборка прошла успешно, все работает.

Однако я не могу сделать это на нашем сервере сборки, поэтому вместо ссылки на jar из моего локального рабочего пространства мне нужночтобы получить его из внутреннего хранилища maven нашей организации.

maven { url 'http://customer_repo:0000/maven' }

, а затем в зависимостях:

compile ('our.company.groupid:java_library:0.0.1')

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

Но теперь, когда я собираюпроект выдавал ошибки компиляции, говоря, что не нашел символ, указывающий на класс, импортированный из библиотеки Jar.Та же ошибка показана в IDE (IntelliJ), который также отлично работал с flatDir.

Есть ли что-то очевидное, что я пропускаю?

РЕШЕНО: Да, была одна очевидная вещь, которую яскучал.В проекте библиотеки JAR build.gradle имел следующее:

publishing { ... publications { artifactId = 'java_library' } }

Мне не хватало

from components.java

, как только ядобавил его,

publishing { ... publications { artifactId = 'java_library' from components.java } }

и снова опубликовал библиотеку. Я смог успешно импортировать его в другой проект.

1 Ответ

0 голосов
/ 20 апреля 2019

url 'http://customer_repo:0000/maven'

Сначала откройте этот URL-адрес в браузере и убедитесь, что вы можете связаться с вашей библиотекой, щелкнув ссылки (т. Е. our -> company -> groupid -> java_library -> 0.0.1)

Во-вторых, скачайте библиотеку и проверьте, действительно ли в ней отсутствует файл класса. Возможно, вы загрузили неверный файл, который не является библиотекой.

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