У меня есть проект 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
}
}
и снова опубликовал библиотеку. Я смог успешно импортировать его в другой проект.