我已使用此任务成功生成了源代码jar:
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from project.sourceSets.main.allSource
}
但是,jar只包含顶级项目的源代码,而不是任何项目依赖项的源代码。 因此,我尝试调整代码来创建所有项目,顶级和依赖项的列表,并从中收集源代码:
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
List<Project> projects = new ArrayList<>()
projects.add(project)
from project.configurations.runtime.dependencies
.findAll { dependency -> dependency instanceof ProjectDependency }
.each{ projects.add(it.getDependencyProject()) }
from { projects.collect { it.sourceSets.main.allSource } }
}
但是,它不起作用,我得到一个错误,说它无法将某个子项目的名称转换为URL。如何更正上面的代码以使其按预期工作?