我有一个jar任务,配置为将我自定义的zip存档依赖项的内容复制到jar存档的特定子文件夹中:
configurations {
docs
javadocs
}
dependencies {
...
docs "mygroup:myartifact:0.0.1-SNAPSHOT:docs@zip"
javadocs "mygroup:myartifact:0.0.1-SNAPSHOT:javadoc"
}
jar {
...
from ( configurations.docs.collect { zipTree(it) } ) {
into 'static/docs'
}
from ( configurations.javadocs.collect { zipTree(it) } ) {
into "static/docs/${name}/${version}/javadoc"
}
}
这适用于文档依赖项。对于javadoc,正如您所看到的,我需要访问相应的依赖项名称和版本,以将内容复制到jar的特定子文件夹中。否则它会重叠,我不控制javadocs依赖项的内部文件夹结构。
有没有办法访问/使用Gradle API来实现草绘功能?
答案 0 :(得分:2)
试试这个(未完全测试;使用Gradle 3.5):
jar {
...
from ( configurations.docs.collect { zipTree(it) } ) {
into 'static/docs'
}
configurations.javadocs.resolvedConfiguration
.firstLevelModuleDependencies.each { ResolvedDependency dep ->
into("static/docs/${dep.moduleName}/${dep.moduleVersion}/javadoc") {
from(dep.moduleArtifacts.collect { zipTree(it.file) })
}
}
}
我在Configuration
here的Gradle javadoc周围进行了一次攻击。