Понимание Gradle mavenDeployer
Я новичок в Gradle и Groovy в общем, и я пытаюсь понять следующий пример из Gradle руководство пользователя, и особенно, как я мог найти в документации DSL, где все эти параметры можно найти:
uploadArchives {
repositories.mavenDeployer {
name = 'sshDeployer' // optional
configuration = configurations.deployerJars
repository(url: "scp://repos.mycompany.com/releases") {
authentication(userName: "me", password: "myPassword")
}
}
}
Что я понимаю:
-
uploadArchives
- это задача типа Upload
, добавленная в проект плагином Java
-
repositories
является свойством задачи Upload
типа RepositoryHandler
Что я не понимаю:
-
mavenDeployer
не отображается нигде в документации RepositoryHandler. От куда это? Как мы должны знать, что такой метод существует?
- Поиск в индексе, я обнаружил, что
mavenDeployer
- это метод из MavenRepositoryHandlerConvention, который смешивается в RepositoryHandler, связанном с каждым задача типа Upload. Жаль, что это не упоминается в документации RepositoryHandler
и документации по загрузке.
-
Хотя это может быть яснее, я понимаю, что закрытие должно настроить объект типа GroovyMavenDeployer
. Но, читая javadoc, свойство repository
, например, имеет тип Object
. Как я могу узнать, что я могу настроить его, используя следующее?
repository(url: "scp://repos.mycompany.com/releases") {
authentication(userName: "me", password: "myPassword")
}
Ответы
Ответ 1
Gradle Документация DSL не является особенно полной. Это не всегда ясно, где public api останавливается, и частный impl запускается, и часто исходный код является единственным местом для получения всеобъемлющего представления (поэтому я считаю, что проще всего связать код src с моей IDE).
В вашем конкретном случае userguide + исходный код - лучший способ навигации.