了解Gradle的mavenDeployer

时间:2012-10-06 15:50:20

标签: groovy gradle

我一般都是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")
        }
    }
}

我的理解:

  • uploadArchivesUpload类型的任务,由Java插件添加到项目中
  • repositoriesUpload任务的属性,类型为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")
    }
    

1 个答案:

答案 0 :(得分:5)

Gradle DSL文档并不是特别全面。并不总是清楚公共api停止和私人impl开始的地方和通常源代码是唯一可以获得全面视图的地方(所以我发现将src​​代码链接到我的IDE通常最简单。)

在您的具体情况下,the userguide +源代码是导航的最佳方式。