有没有办法确定在gradle的发布任务中发布工件的位置?

时间:2014-10-24 00:13:08

标签: maven gradle

正如标题所说,有没有办法确定在gradle的发布任务中发布工件的位置?原因是我希望获得这些信息,因此我可以发送一封包含URL的电子邮件进行下载。发布不是问题 - 我已经通过maven-publish工作了。但是,似乎还没有一种方法可以在屏幕上打印出仍然在构建内部的信息。

编辑:

例如,在发布时我得到了

的读数

Upload http://xxxxxxxxxx:9000/archiva/repository/snapshots/com/xxxxxxxxxx/mobile/xxxxxxxxxx/0.0.1-SNAPSHOT/xxxxxxxxxx-debug-unaligned-0.0.1-SNAPSHOT.apk

程序显然知道工件的确切位置。有没有办法将这些信息提取出去并在另一项任务中使用它?

1 个答案:

答案 0 :(得分:3)

您可以从任务本身获取此信息。 maven-publish插件为每个存储库的每个工件创建一个发布任务。

project.tasks.withType(PublishToMavenRepository).all { task ->
    task.doLast {
        def baseUrl = "${task.repository.url}/${task.publication.groupId.replace('.', '/')}/${task.publication.artifactId}/${task.publication.version}/${task.publication.artifactId}"
        task.publication.artifacts.each { artifact ->
            println "${baseUrl}${artifact.classifier ? '-' + artifact.classifier : ''}.${artifact.extension}"
        }
    }
}