groovy 了解Gradle的mavenDeployer

bprjcwpo  于 2022-11-01  发布在  Maven
关注(0)|答案(1)|浏览(232)

总体而言,我是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")
        }
    }
}

我的理解是:

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

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

相关问题