我接下来的项目有一个Gradle脚本,可以根据列表动态构建任务。这样,当人们分叉存储库时,他们只能编辑列表。归结为这样的事情:
def files = ['file1', 'file2', 'file3']
files.each { f ->
task (f, type: Exec) {
executable 'touch'
args file
}
}
我想做的是能够发布任务的输出。理想情况下,我希望以多个发布的方式执行此操作。我用下面的代码片段给了它一个刺,但Gradle似乎真的很讨厌我使用java.lang.String.call()
作为类名!
publishing {
publications {
files.each { f ->
f (IvyPublication) {
module f
artifact (file(f))
}
}
}
}
我正在尝试做什么,或者我应该完全改变大头钉?
[edit]我想我可以用IvyPublication.loadClass(f)
做到这一点,但是在努力解决细节问题。任何帮助非常感谢
答案 0 :(得分:1)
啊哈!我找到了解决方案。它并不像使用类加载器那样令人兴奋,但确实有效:
publishing {
files.each { f ->
publications.create(f, IvyPublication) {
module f
artifact (file(f))
}
}
}