自定义 PublishToIvyRepository 任务中存储库的语法是什么?
What is the syntax for a repository in a custom PublishToIvyRepository task?
我正在尝试创建一个自定义任务,以便我可以发布到通常不属于 build.gradle
中项目级 publishing {}
块的特定存储库。我最初的想法是创建一个 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 {}
语法的错误消息。
Could not find method ivy() for arguments [build_6twdleybkcdvojdar8mcpb96g$_run_closure7$_closure23@60c8966b] on task ':MyProject:publishToSpecialIvyRepo' of type org.gradle.api.publish.ivy.tasks.PublishToIvyR
epository.
不幸的是,documentation about publishing to Ivy repositories 没有描述编写您自己的 PublishToIvyRepository
任务,所以我不确定我做错了什么。
这是尝试发布到特定存储库的正确方法吗?如果是这样,那我做错了什么?有没有更好的方法来实现我的目标?
ivy
方法是 RepositoryHandler
的一部分,因此在 Project
或 PublishToIvyRepository
任务范围内不可用。
您可以尝试通过默认方式创建存储库RepositoryHandler
:
repository = repositories.ivy {
// configure the repository
}
请注意,此方法会将存储库添加到用于工件解析的存储库列表中。
我正在尝试创建一个自定义任务,以便我可以发布到通常不属于 build.gradle
中项目级 publishing {}
块的特定存储库。我最初的想法是创建一个 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 {}
语法的错误消息。
Could not find method ivy() for arguments [build_6twdleybkcdvojdar8mcpb96g$_run_closure7$_closure23@60c8966b] on task ':MyProject:publishToSpecialIvyRepo' of type org.gradle.api.publish.ivy.tasks.PublishToIvyR epository.
不幸的是,documentation about publishing to Ivy repositories 没有描述编写您自己的 PublishToIvyRepository
任务,所以我不确定我做错了什么。
这是尝试发布到特定存储库的正确方法吗?如果是这样,那我做错了什么?有没有更好的方法来实现我的目标?
ivy
方法是 RepositoryHandler
的一部分,因此在 Project
或 PublishToIvyRepository
任务范围内不可用。
您可以尝试通过默认方式创建存储库RepositoryHandler
:
repository = repositories.ivy {
// configure the repository
}
请注意,此方法会将存储库添加到用于工件解析的存储库列表中。