我正在尝试创建自定义任务,以便我可以发布到通常不属于publishing {}
中项目级build.gradle
块的特定存储库。我最初的想法是创建一个PublishToIvyRepository
类型的任务,它有一个自定义存储库的字段。我的代码如下所示:
task publishToSpecialIvyRepo(type: PublishToIvyRepository) {
repository = ivy {
url "http://example.com/mySpecialIvyRepo"
layout 'pattern' , {
artifact '[organization]/[module]/[revision]/[artifact](-[revision])(-[classifier]).[ext]'
ivy '[organization]/[module]/[revision]/[artifact].[ext]'
}
}
publication = project.publishing.publications[0]
}
然而,这似乎不起作用,因为我收到一条错误消息,涉及不识别ivy {}
语法。
无法在任务'上找到参数[build_6twdleybkcdvojdar8mcpb96g $ _run_closure7 $ _closure23 @ 60c8966b]的方法ivy():MyProject:publishToSpecialIvyRepo'的类型org.gradle.api.publish.ivy.tasks.PublishToIvyR epository。
不幸的是,documentation about publishing to Ivy repositories并没有描述编写自己的PublishToIvyRepository
任务,因此我不确定自己做错了什么。
这是尝试发布到特定回购的正确方法吗?如果是这样,那么我做错了什么?有没有更好的方法来实现我的目标?
答案 0 :(得分:1)
ivy
方法是RepositoryHandler
的一部分,因此在Project
或PublishToIvyRepository
任务范围内无法使用。
您可以尝试通过默认的RepositoryHandler
:
repository = repositories.ivy {
// configure the repository
}
请注意,此方法会将存储库添加到用于进行工件解析的存储库列表中。