Я не могу опубликовать второй набор jar-файлов в локальном репозитории Maven, используя отдельную задачу загрузки, отличную от uploadArchives
. Вот мои настройки:
uploadArchives {
repositories {
mavenDeployer {
repository(url: project.releaseRepoUrl)
snapshotRepository(url: project.snapshotRepoUrl)
}
}
}
task sourcesJar(type: Jar){ ... }
artifacts{
archives sourcesJar
}
Выше работает как ожидалось. Тогда у меня есть дополнительные configuration
configurations{
guiceArchives
}
task guiceJar(type: Jar){ ... }
task guiceSourcesJar(type: Jar){ ... }
artifacts{
guiceArchives guiceJar
guiceArchives guiceSourcesJar
//archives guiceJar
//archives guiceSourcesJar
}
Выполнение gradle uploadArchives
работает нормально, но gradle uploadGuiceArchives
ничего не делает:
:core:guiceClasses UP-TO-DATE
:core:guiceJar UP-TO-DATE
:core:guiceSourcesJar UP-TO-DATE
:core:jar UP-TO-DATE
:core:sourcesJar UP-TO-DATE
:core:uploadArchives
BUILD FINISHED
Отдельные guiceJar
и guiceSourcesJar
отлично работают сами по себе, и распечатка содержимого конфигурации guiceArchives
также показывает, что банки правильно включены в качестве артефактов.
Я попытался временно назначить guiceJar
и guiceSourcesJar
для конфигурации archives
, что заставляет его жаловаться, говоря:
A POM cannot have multiple artifacts with the same type and classifier.
Это именно то, что написано в руководстве . Поэтому я предположил, что причиной столкновения было именно это столкновение артефактов.
Так что я исправил это, используя addFilter
, как предлагает руководство, которое работало замечательно, но только когда guiceJar
и guiceSourcesJar
присвоены archives
. Когда я назначаю их обратно guiceArchives
и пытаюсь gradle uploadGuiceArchives
, это все равно ничего не делает.
Нет ли способа загрузить несколько артефактов с разными задачами загрузки?
Решение:
Вот обновление с решением, предоставленным @Peter Niederwieser.
Просто добавьте это:
uploadGuiceArchives {
repositories {
mavenDeployer {
repository(url: project.releaseRepoUrl)
snapshotRepository(url: project.snapshotRepoUrl)
}
}
}
Примечание: addFilter
не требуется.
Спасибо!
Edit2:
Для полноты project.releaseRepoUrl
и project.snapshotRepoUrl
устанавливаются в локальный репозиторий maven следующим образом:
project.ext{
releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases"
snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots"
}