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

Ste*_*hen 1 gradle maven

正如标题所说,有没有办法确定 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

该程序显然知道工件被发送到的确切位置。有没有办法提取该信息并将其用于其他任务?

Mar*_*ira 5

您可以从任务本身获取此信息。该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}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)