了解Gradle的mavenDeployer

JB *_*zet 14 groovy gradle

我在摇篮和Groovy一般一个新手,我试图了解从下面的例子摇篮用户指南,尤其是我怎么能找到,在DSL文件,所有这些选项可以发现:

uploadArchives {
    repositories.mavenDeployer {
        name = 'sshDeployer' // optional
        configuration = configurations.deployerJars
        repository(url: "scp://repos.mycompany.com/releases") {
            authentication(userName: "me", password: "myPassword")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的理解:

  • uploadArchives是一个类型的任务,Upload由Java插件添加到项目中
  • repositoriesUpload类型的任务的属性RepositoryHandler

我不明白的是:

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

    repository(url: "scp://repos.mycompany.com/releases") {
        authentication(userName: "me", password: "myPassword")
    }
    
    Run Code Online (Sandbox Code Playgroud)

Mat*_*att 5

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

在您的特定情况下,用户指南 +源代码是导航的最佳方式.