如何添加打包在 zip 中的依赖项

问题描述 投票:0回答:2

我找不到在 gradle 中如何依赖于 zip 依赖项中打包的 jar。 我的用例是从 intellij 的分发存储库检索 platform-api.jar 工件。

gradle intellij-idea dependencies zip
2个回答
0
投票

到处搜索但找不到答案。 通过使用发行版的独立配置的

zipTree
相当巧妙地解决了这个问题,如下所示:

...
dependencies {
    ...
    implementation zipTree(project.configurations.detachedConfiguration(dependencies.create("com.jetbrains.intellij.idea:ideaIC:2021.1.2")).singleFile).matching {
        include "lib/platform-api.jar"
    }
}

0
投票

如果您想避免每次构建运行时都解压缩,您可以使用任务并利用最新检查(请参阅创作任务

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"
      } 
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.