Мы используем внутренний репозиторий ivy и находимся в процессе отхода от ant / ivy и передачи всех задач в gradle. У меня есть репозиторий плюща, настроенный в Gradle следующим образом:
repositories {
ivy {
url "${ivy_repository_url}"
layout "pattern", {
ivy "repository/[organisation]/[module]/[revision]/[artifact].[ext]"
artifact "repository/[organisation]/[module]/[revision]/[artifact].[ext]"
m2compatible = true
}
credentials {
username "${ivy_repository_username}"
password "${ivy_repository_password}"
}
}
}
и после выполнения задачи он решает, как ожидалось, однако в некоторых случаях он удаляет все в репозитории, если соглашение об именах не совпадает, поэтому я получаю много дополнительных материалов, javadocs.zip, sources.zip и все остальное еще.
Чтобы обойти это, я хочу сначала загрузить определенные файлы jar во временную папку, а затем скомпилировать их из локального, но я не знаю, как сказать gradle, чтобы загрузить файл, имя которого отличается от имени модуля.
Пример:
ivyFiles 'net.sourceforge.jtidy: jtidy: r938 @ jar'
загружает только jtidy-r938.jar из репозитория net.sourceforge.jtidy, но что-то вроде
com.gargoylesoftware ivyFiles: htmlunit: 2.7@jar
будет извлекать htmlunit-2.7.jar, но не файл htmlunit-core-js-2.7.jar.
Если я опущу @jar, он вернется к вызову файла ivy.xml, и у меня останутся все нежелательные + зависимости, которых я пытаюсь избежать. Я безуспешно пробовал следующее
ivyFiles ('com.gargoylesoftware:htmlunit:2.7'){
artifact{
name = 'htmlunit-core-js'
type = 'jar'
}
}
Должен быть способ сделать это.
Спасибо