问题标签 [shadowjar]

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 投票
2 回答
657 浏览

kotlin - Kotlin-multiplatform:ShadowJar gradle 插件创建空 jar

我尝试使用 ShadowJar gradle pluging 将我的 ktor 应用程序打包到 fat jar 中。但是由于shadowJar任务的结果,我每次都得到几乎是空的罐子。它仅包含清单(主类已正确设置)。

Gradle 配置(groovy):

0 投票
1 回答
649 浏览

java - 如何使用 gradle maven-publish 插件和 Kotlin DSL 发布带有空 pom 的影子 jar?

影子插件文档有一个groovy 示例,但我不明白如何将其转换为 Kotlin。

来自https://imperceptiblethoughts.com/shadow/publishing的 Groovy 示例:

我对 Kotlin 版本的最佳尝试:

使用上面的 Kotlin 版本,隐藏的依赖项在生成的 pom 中显示为运行时依赖项,这违背了隐藏的目的。

0 投票
1 回答
920 浏览

gradle - 当我的应用程序依赖于依赖于不同 micronaut 版本的库时,找不到匹配的 micronaut-bom 变体

我有一个带有这个 build.gradle 文件的库

还有一个使用这个库的应用程序:

当 app 和 lib 之间的 micronaut 版本不同时(即使只有补丁版本),我在尝试构建时收到此消息:

我可能做错了什么,因为 Gradle 应该处理版本冲突。我错过了什么?

0 投票
2 回答
1048 浏览

kotlin - 如何使用 kotlin dsl 配置 Shadow 插件

我不知道如何在带有 kotlin DSL 的 gradle 构建中使用shadow插件。所有文档都使用 groovy dsl。

这是 build.gradle.kts 的内容:

这是内容src/main/kotlin/com/example/Main.kt

但是当我尝试这样做时gradle build,我收到了这个错误:

我认为这很奇怪,因为我已经在application参数中输入了应用程序主类。

我试图添加这个:

但是当我尝试使用此选项进行构建时,它会抱怨找不到ShadowJar类型。

我在这里做错了什么?

0 投票
1 回答
600 浏览

java - Shadow jar 缺少常见的 java 类

我正在打包我的应用程序的影子罐子。该应用程序使用 kotlin 和一些外部依赖项。所有依赖项都在我的 jar 中,但在运行时出现以下异常:

java.lang.NoSuchMethodError: java.util.Optional.isEmpty()Z

最后的 Z 总是在那里;我不知道它来自哪里。

我检查了 build.gradle 文件的多个示例,我的似乎很好。

我无法确定确切的问题是我的 java 安装工作不正常还是我的 jar 缺少东西?

谢谢你的帮助 !

0 投票
0 回答
66 浏览

java - JavaFX程序在部署后没有管理员权限无法运行

我开发了一个使用 derby 嵌入式数据库的 JavaFX 程序。我正在使用 JDK 11.0.10、IntelliJ 2020.3.1、JavaFX 14.0.1 和 Gradle 6.3。

对于 jar 文件,我shadowJar用来制作一个工作 jar 文件。然后,我使用Launch4j包装 jar 文件以制作一个 .exe 文件:可执行文件工作正常

我现在的问题是,在我使用Inno Setup Compiler安装程序后,除非我以管理员权限运行,否则.exe 文件将无法工作。我可以用可执行文件包装清单,使其每次都以管理员身份运行,但我想知道问题出在哪里,有没有办法修复它以使可执行文件正常运行。

0 投票
0 回答
343 浏览

java - 如何使用 Proguard 缩小 Gradle ShadowJar 输出以创建最小化的胖 Java jar?

我想缩小一个使用Gradle shadow plugin创建的胖罐子。这样做的原因是我需要在完成的 jar 中的特定包中保留一些类,因为它们用于动态类生成(例如Class.forName(...)),并且该插件不允许我minimize()在阴影中调用时指定要保留的包jar 任务)。因此,我使用Proguard Gradle 插件

所以,我想做的是创建一个包含所有依赖项的胖 jar,然后传递给 Proguard 以最小化。目前,我不想优化或混淆。

当我尝试运行该任务时,我收到了很多can't find referenced class类的错误,如javax.xml.stream.events.Attribute, java.sql.Timestamp, java.util.logging.Level. 我认为这是因为 Proguard 没有选择 Java 运行时库。这是错误摘要:

如何使 Proguard 与 Gradle 和 Java 11 一起工作?

0 投票
0 回答
243 浏览

spring - EntityManager Bean 创建异常只有 ShadowJar, java.lang.IllegalArgumentException: Not a parameterized type。使用 Apache Beam 库

仅当我运行 shadowJar 时,我在创建 entityManager bean 时收到以下错误。

bootJar 或 bootRun没有给出任何异常;它工作正常。我需要创建一个影子罐子。

例外

构建.gradle

这是与实体管理器相关的 bean。

这是一个示例程序

要运行,请包括

  • ./gradlew bootRun -Pdev
  • ./gradlew bootJar并在运行时包含“-Dspring.profiles.active=dev”
  • ./gradlew shadowJar并包括“-Dspring.profiles.active=dev”——错误步骤

我不使用 bootJar 的原因是因为我正在使用应用程序创建一个谷歌数据流管道,依赖的 jar 文件不是从 bootJar 暂存的(Beam 需要依赖项的绝对路径来暂存相关文件)。但是我尝试过使用非 Spring Maven 阴影 jar,所有相关文件都已上演。希望用 spring shadowJar 实现同样的效果。

0 投票
1 回答
430 浏览

gradle - 如何将清单部分与 Gradle 和 shadowJar 合并

我需要的

我们使用 Gradle 和shadowJar打包我们的产品。我们使用的一些库利用了 Jar Manifests 中的各个部分,特别是诸如 Implementation-Title 和 Implementation-Version 之类的属性。这些有时会显示在我们的产品(输出)中,所以我希望它们能够在 shawdowJar-Process 中存活下来。

例子

lib1.jar/META-INF/MANIFEST.MF

lib2.jar/META-INF/MANIFEST.MF

=> product.jar/META-INF/MANIFEST.MF

我发现了什么

静态地生成我想要的东西。

  • shadowJar 可以为我提供依赖项列表。但是,当我像这样遍历 FileCollection

Gradle 不高兴:“在依赖项解析中包含依赖项配置 ':project:products:<ProductName>:compile' 后无法更改依赖项。”

  • 当我定义一个新任务时

依赖关系没有及时解决。

我想知道的

如何在不破坏 Gradle 的情况下访问依赖项?或者,是否有另一种方法可以将命名的各个部分与 shadowJar 合并?

0 投票
0 回答
304 浏览

java - 使 ./gradlew build 只生成 shadowJar 的 jar 文件

当我这样做时./gradlew build,它会在build\libs\

  • 项目名称.jar
  • 项目名称-all.jar

normal./gradlew build生成的 jar 文件和 shadowJar 的一个(它是带有“-all”的那个)。
由于只有 shadowJar 的 jar 工作,我怎样才能让它只保留 shadowjar 的 jar 文件并-all在最后删除?

这是我的 build.gradle :