我一般都是Gradle和Groovy的新手,我试图理解Gradle user guide中的以下示例,特别是我在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的方法,它与RepositoryHandler中的每个任务类型上传相关联。太糟糕了,RepositoryHandler
的文档和上传文档中没有提到这一点。虽然它可以更清楚,但我知道闭包必须配置GroovyMavenDeployer
类型的对象。但是,读取javadoc,repository
属性的类型为Object
。我怎么知道我可以使用以下命令配置它?
repository(url: "scp://repos.mycompany.com/releases") {
authentication(userName: "me", password: "myPassword")
}
答案 0 :(得分:5)
Gradle DSL文档并不是特别全面。并不总是清楚公共api停止和私人impl开始的地方和通常源代码是唯一可以获得全面视图的地方(所以我发现将src代码链接到我的IDE通常最简单。)
在您的具体情况下,the userguide +源代码是导航的最佳方式。