问题标签 [gradle-shadow-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
87 浏览

java - Gradle:java.lang.ClassNotFoundException:运行 Uber Jar 时

我正在尝试使用 gradle 6.0 版在 java 中构建 uber jar,它构建得很好。但是当我运行 Uber Jar 时,它会抛出以下错误

我的 build.gradle 文件如下所示

我正在使用以下步骤构建 uber jar

输出中的 Uber 罐子

我也打开了 uber jar,它的 Runner 类与 build.gradle 中给出的路径相同。

谁能告诉我我错过了什么?

0 投票
1 回答
143 浏览

java - 基于 Springboot 的 REST API 的开放 API 文档因 ApplicationContextException 而失败。该项目是用 gradlew shadow 插件构建的

我正在尝试将打开的 api 文档添加到我拥有的 springboot 基础 REST api 项目中。在 intelliJ IDE 本地运行或使用 gradlew run/bootRun 时,它工作正常

但是,当使用 gradlew shadow 插件“com.github.johnrengelman.shadow”将项目打包为胖 jar 并在命令行上运行时,java -jar build/libs/Application-0.0.1-SNAPSHOT-all.jar它失败了ApplicationContextException

异常堆栈跟踪:

构建.gradle

没有 openapi 依赖 implementation 'org.springdoc:springdoc-openapi-ui:1.5.12'

独立运行java -jar build/libs/Application-0.0.1-SNAPSHOT-all.jar绝对正常。

open api 和 springboot 库之间是否存在一些依赖冲突?

0 投票
0 回答
75 浏览

kotlin - Gradle shadowjar 将所有子模块打包到一个 jar 中

原始问题:https ://github.com/johnrengelman/shadow/issues/744

我最近将我的项目转换为一个多模块项目,但我在使用 shadowjar 的最小化功能时遇到了问题。这是我的项目结构:

这是一个多模块项目,core依赖于api模块,core 和 api 都有一些第三方依赖(例如 Kotlin 标准库)。而且,我在根项目的构建脚本中实现了这两个模块,并希望将它们打包到一个 jar 中。

问题是,当我在shadowjar任务中添加minimize()时,它减少了我所有的代码,似乎它认为子项目也是第三方依赖。

我还尝试将排除语句添加到最小化:

这样确实会打包core和api,但是core和api依赖的第三方库还是没有打包

影子版

7.0.0

摇篮版本

7.1

预期行为

适当地最小化依赖关系

实际行为

它还最小化了我的项目代码?!

Gradle 构建脚本

我创建了一个示例项目来重现它: https ://github.com/re-ovo/shadow-jar-test

这是根项目构建脚本: https ://github.com/re-ovo/shadow-jar-test/blob/master/build.gradle

0 投票
1 回答
24 浏览

apache-spark - 使用 Gradle 构建 Spark fat jar:shadow 插件会产生损坏的 JAR 文件

我正在尝试用 Gradle 构建一个 Spark fat jar。构建成功,但文件以一种微妙的方式损坏:尝试运行它会产生:

JAR 本身看起来不错:缺少的类就在那里,当我解压缩它时,我可以正常运行项目。

这是gradle.build文件:

Gradle 版本是 7.3.3

可以在https://github.com/SashaOv/shadow-jar-repro找到重现此问题的最小项目的完整代码

感谢任何线索