我找不到在 gradle 中如何依赖于 zip 依赖项中打包的 jar。 我的用例是从 intellij 的分发存储库检索 platform-api.jar 工件。
到处搜索但找不到答案。 通过使用发行版的独立配置的
zipTree
相当巧妙地解决了这个问题,如下所示:
...
dependencies {
...
implementation zipTree(project.configurations.detachedConfiguration(dependencies.create("com.jetbrains.intellij.idea:ideaIC:2021.1.2")).singleFile).matching {
include "lib/platform-api.jar"
}
}
如果您想避免每次构建运行时都解压缩,您可以使用任务并利用最新检查(请参阅创作任务)
configurations {
intellij
}
dependencies {
intellij 'com.jetbrains.intellij.idea:ideaIC:2021.1.2'
implementation tasks.named('intellijUnzip')
}
tasks.register('intellijUnzip') {
inputs.files configurations.intellij
outputs.dir "$buildDir/intellijUnzip"
doLast {
copy {
from zipTree(configurations.intellij.singleFile)
include "lib/platform-api.jar"
into "$buildDir/intellijUnzip"
}
}
}