当前位置: 首页 > 知识库问答 >
问题:

配置Gradle Shadow插件以创建只有一个重新定位依赖项的库jar

蒯胜泫
2023-03-14

我的示例项目按预期工作,但我不希望我需要将依赖项定义为shadowimplementation两次。

shadow=>依赖项作为运行时DEP添加到发布的pom中(参见代码)

implementation=>用于编译项目本身的依赖项,例如在您的IDE中。

共有1个答案

董永宁
2023-03-14

如果您想创建一个库jar,其中只有一个特定的依赖项需要重新定位,而项目的其他依赖项仍在发布的pom中,那么由于影子插件的工作方式,没有其他解决方案。

因此,我更新了我的示例项目,并找到了两个可能的解决方案,以解决缺少可传递依赖项的问题(我的问题中的siehe更新块)。

选项1:将所有可传递依赖项(以及依赖项的依赖项)添加到shadowJar块:https://github.com/dacrome/gradle-shadow-plugin-example/tree/successful-config-option-1

 类似资料:
  • configure脚本创建一个名为'config.status'的文件,用它描述在包最后一次进行配置时 给出的配置选项。该文件是一个shell脚本文件,如果运行它,将重新创建相同的配置。 你可以用'--recheck'选项调用'config.status'以更新它自身。如果你修改了configure, 该选项是有用的,这是因为某些测试的结果可能会与上一次运行的结果不同。选项'--recheck'以

  • 我创建了一个gradle插件(简称testinfra),它在编译时和运行时依赖于其他两个jar。这是我的版本。我的插件的gradle: 我能够将我的插件罐子推向人工制品。但是当我想使用插件时,我必须指定插件的GAV及其依赖项。见下文: 我的要求是避免指定依赖罐的GAV以及测试插件GAV。有没有办法在发布期间配置我的pom.xml(发布任务),这样当我指定插件的GAV时,gradle会识别依赖项并下

  • 我有两个依赖项,工件-a和工件-b。每个依赖于不同版本的工件-c。我如何对工件进行阴影以使用这些不同的依赖项?(或者让工件-a使用阴影依赖项,工件-b使用普通依赖项。

  • 我正在使用maven shade插件创建一个胖罐子,其中也包括一些弹性城堡罐子。但这造成了问题,因为Bouncy Castle的未签名版本。

  • 我想创建一个自动应用其他插件(外部插件)的插件。这需要在调用“apply plugin”之前设置插件的buildscript依赖项。然而,我似乎无法在插件中添加buildscript依赖项,或者我得到:您无法更改未处于未解析状态的配置! 有解决办法吗? 我的示例(非工作)代码:

  • Kotlin插件包括一个让我们配置Gradle的工具。但是我还是倾向于保持我对Gradle文件读写的控制权,否则它只会变得混乱而不会变得简单。不管怎么样,在使用自动工具之前知道它是怎么工作的是个不错的主意。所以这次,我们将手动去做。 首先,你需要如下修改父build.gradle: buildscript { ext.support_version = '23.1.1' ext.k