Gradle: как загрузить пользовательский JAR-файл в репозиторий Maven
Я создаю JAR-файл без использования задачи Gradle Jar (мне нужно использовать задачу Ant для этого внутри моей задачи). Как мне настроить uploadArchives, чтобы иметь возможность устанавливать JAR в указанном репозитории.
Я попытался переопределить артефакт по умолчанию с
uploadArchives {
repositories {
mavenDeployer {
// some Maven configuration
}
}
}
artifacts {
archives file: file('bin/result.jar')
}
но я получаю сообщение об ошибке, что не может быть 2 артефакта с одинаковым типом и классификатором, что означает, что эта конфигурация добавляет, а не заменяет конфигурацию.
1 ответ
Вы правы, artifacts
Закрытие может только добавить артефакты к данной конфигурации (см. API ArtifactHandler).
У вас есть два варианта:
1) Добавьте фильтр артефактов, как описано здесь (см. Раздел 45.6.4.1. "Несколько артефактов на проект"). Если вы используете это, попробуйте объявить archives
конфигурация как:
artifacts {
archives file: file('bin/result.jar'), name: 'result', type: 'jar'
}
Таким образом, вы что-то вроде этого в вашем фильтре артефактов:
addFilter('result') {artifact, file ->
artifact.name == 'result'
}
2) Загрузите его как отдельный модуль maven. Если result.jar
это единственная банка, которую вы загружаете, это может быть хорошим решением.
configurations {
resultArchives
}
uploadResultArchives {
repositories {
mavenDeployer {
repository(url: "same/url/here")
}
}
}
artifacts{
resultArchives file: file('bin/result.jar')
}
Надеюсь это поможет.