16

一般来说,我是 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 插件添加到项目中
  • repositoriesUpload任务的属性,属于类型RepositoryHandler

我不明白的是:

  • mavenDeployer没有出现在RepositoryHandler 的文档中的任何地方。它从何而来?我们怎么知道存在这样的方法?
  • 在索引中搜索,我发现这mavenDeployer是一个来自MavenRepositoryHandlerConvention的方法,它混合在与 Upload 类型的每个任务关联的 RepositoryHandler 中。太糟糕了,这在RepositoryHandler的文档和 Upload 的文档中没有提到。
  • 虽然它可能更清楚,但我知道闭包必须配置一个类型的对象GroovyMavenDeployer。但是阅读 javadoc,repository例如属性是 type Object。我怎么知道我可以使用以下配置它?

    repository(url: "scp://repos.mycompany.com/releases") {
        authentication(userName: "me", password: "myPassword")
    }
    
4

1 回答 1

5

Gradle DSL 文档并不是特别全面。公共 api 停止和私有 impl 开始的位置并不总是很清楚,而且源代码通常是获得全面视图的唯一地方(所以我发现将 src 代码链接到我的 IDE 通常是最容易的)。

在您的具体情况下,用户指南+ 源代码是最好的导航方式。

于 2012-10-07T08:11:18.383 回答