总体而言,我是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
没有出现在documentation of RepositoryHandler中的任何地方。它是从哪里来的?我们怎么知道这样的方法存在?- 在索引中搜索,我发现
mavenDeployer
是MavenRepositoryHandlerConvention中的一个方法,它混合在与Upload类型的每个任务相关联的RepositoryHandler中。 - 虽然我知道闭包必须配置一个
GroovyMavenDeployer
类型的对象,但是在阅读javadoc时,例如repository
属性是Object
类型的,我怎么知道我可以使用下面的代码来配置它呢?
repository(url: "scp://repos.mycompany.com/releases") {
authentication(userName: "me", password: "myPassword")
}
1条答案
按热度按时间mrzz3bfm1#
Gradle DSL文档并不是特别全面,并不总是清楚public api在哪里停止,private impl在哪里开始&通常源代码是获得全面视图的唯一位置(所以我发现将src代码链接到我的IDE通常是最简单的)。
在您的特定情况下,用户指南+源代码是最好的导航方式。
编辑:此答案指的是旧版本的gradle,因此上面的用户指南链接指向该旧版本,当前版本(撰写本文时为v7.4.2)gradle使用了不同的插件,如www.example.com所述https://docs.gradle.org/current/userguide/userguide_single.html#publishing_maven