问题标签 [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.
kotlin - Kotlin-multiplatform:ShadowJar gradle 插件创建空 jar
我尝试使用 ShadowJar gradle pluging 将我的 ktor 应用程序打包到 fat jar 中。但是由于shadowJar
任务的结果,我每次都得到几乎是空的罐子。它仅包含清单(主类已正确设置)。
Gradle 配置(groovy):
java - 如何使用 gradle maven-publish 插件和 Kotlin DSL 发布带有空 pom 的影子 jar?
影子插件文档有一个groovy 示例,但我不明白如何将其转换为 Kotlin。
来自https://imperceptiblethoughts.com/shadow/publishing的 Groovy 示例:
我对 Kotlin 版本的最佳尝试:
使用上面的 Kotlin 版本,隐藏的依赖项在生成的 pom 中显示为运行时依赖项,这违背了隐藏的目的。
gradle - 当我的应用程序依赖于依赖于不同 micronaut 版本的库时,找不到匹配的 micronaut-bom 变体
我有一个带有这个 build.gradle 文件的库
还有一个使用这个库的应用程序:
当 app 和 lib 之间的 micronaut 版本不同时(即使只有补丁版本),我在尝试构建时收到此消息:
我可能做错了什么,因为 Gradle 应该处理版本冲突。我错过了什么?
kotlin - 如何使用 kotlin dsl 配置 Shadow 插件
我不知道如何在带有 kotlin DSL 的 gradle 构建中使用shadow插件。所有文档都使用 groovy dsl。
这是 build.gradle.kts 的内容:
这是内容src/main/kotlin/com/example/Main.kt
但是当我尝试这样做时gradle build
,我收到了这个错误:
我认为这很奇怪,因为我已经在application
参数中输入了应用程序主类。
我试图添加这个:
但是当我尝试使用此选项进行构建时,它会抱怨找不到ShadowJar
类型。
我在这里做错了什么?
java - Shadow jar 缺少常见的 java 类
我正在打包我的应用程序的影子罐子。该应用程序使用 kotlin 和一些外部依赖项。所有依赖项都在我的 jar 中,但在运行时出现以下异常:
java.lang.NoSuchMethodError: java.util.Optional.isEmpty()Z
最后的 Z 总是在那里;我不知道它来自哪里。
我检查了 build.gradle 文件的多个示例,我的似乎很好。
我无法确定确切的问题是我的 java 安装工作不正常还是我的 jar 缺少东西?
谢谢你的帮助 !
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 文件将无法工作。我可以用可执行文件包装清单,使其每次都以管理员身份运行,但我想知道问题出在哪里,有没有办法修复它以使可执行文件正常运行。
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 一起工作?
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 实现同样的效果。
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操作生成的清单相当容易:
静态地生成我想要的东西。
- shadowJar 可以为我提供依赖项列表。但是,当我像这样遍历 FileCollection
Gradle 不高兴:“在依赖项解析中包含依赖项配置 ':project:products:<ProductName>:compile' 后无法更改依赖项。”
- 当我定义一个新任务时
依赖关系没有及时解决。
我想知道的
如何在不破坏 Gradle 的情况下访问依赖项?或者,是否有另一种方法可以将命名的各个部分与 shadowJar 合并?
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 :