问题标签 [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 回答
4236 浏览

java - Gradle 清理并复制 JAR 文件

我正在使用 Gradle 构建一个 java 应用程序,我想将最终的 jar 文件传输到另一个文件夹中。我想复制每个上的文件build并删除每个上的文件clean

不幸的是,我只能完成其中一项任务,而不能同时完成。当我copyJar激活任务时,它会成功复制 JAR。当我包含clean任务时,不会复制 JAR,如果那里有文件,则会将其删除。好像有一些任务调用clean.

有什么解决办法吗?

0 投票
2 回答
1593 浏览

java - 如何使用shadowJar gradle插件而不是maven发布将胖JAR发布到JitPack

如何将胖 JAR 发布到 JitPack 并不是很直观,因为影子文档没有针对 JitPack 的部分,而 JitPack 文档没有关于胖 jar 的部分。

所有文档都说,如果您包含,maven-publish那么他们将执行任务publishToMavenLocal

通常通过创建 shadowJar fat jar,gradle shadowjar但 JitPack 上的构建命令是不可配置的,因此我们必须修改我们publishToMavenLocal以使用 shadowJar。

0 投票
0 回答
206 浏览

java - 运行影子 jar 时的 Module.4 异常,但在没有影子时工作正常

我正在使用 johnrengelman shadow gradle 插件将我的项目打包到一个可执行的 jar 中。在这种情况下,我似乎遇到了一些与 rsa 加密库相关的错误,如下所示。有没有人对我可能需要从影子罐中排除哪些内容提出建议?

0 投票
1 回答
1747 浏览

java - 为每种应用程序创建多个 shadowJars

我正在尝试使用 gradle 并尝试设置一个系统来构建应用程序的不同风格(品牌),这些风格主要因配置而异。到目前为止,我有两个版本的构建脚本 - 都不起作用。

Version 1新增
First flavor特定资源文件夹,实现覆盖部分默认资源。任务规则定义了每种风味的任务,这应该(理想情况下)触发整个 jar 的构建。flavor-ressourcesets

这工作正常并生成所需的罐子,一次一种口味,比如

shadowJar任务只运行一次,如果我这样做

精简脚本:

感觉到它可能不起作用,因为更改检测不知何故不起作用,我尝试了另一种方法。这是脚本的简化版本

版本 2

修改了规则,shadowJar为每种风味定义了一个动态任务。

但是,现在,生成的 jar 格式不正确。第一种风味仅获得主要的工件,但没有显示罐子。第二个罐子只有清单,没有别的。

实现这一目标的正确方法是什么。

PS:不,它不是安卓应用程序(味道只是品牌的代名词)。

0 投票
1 回答
228 浏览

gradle - Ratpack + Thymeleaf + shadowJar - 解析模板“home”时出错,模板可能不存在或无法访问

我正在开发 ratpack.io 网络应用程序并使用 gradle 作为构建工具。模板从目录中的模板文件呈现,src/main/thymeleaf在运行时可以正常工作(仅使用gradle run)。

我在创建 uber jar 时遇到了问题,其中不包含模板文件。当我打开输出 jar 文件时,我看到thymeleaf目录是空的。

我知道 shadow-jar 过程的一部分是将所有依赖项合并到一个 jar 中,但我不确定我还需要做什么包括模板文件。我尝试创建特殊规则来包含 html 文件,但最终我只得到了 jar 中的 html 文件,甚至没有来自 thymeleaf 目录的文件。

  • 我需要配置什么来获取这个 uber jar 中包含的模板文件?
  • 如果我真的得到了包含在 jar 模板目录中的文件,我是否需要更新模板解析器以从 jar 与当前工作目录中提取文件?
0 投票
0 回答
1050 浏览

gradle - Gradle:shadowJar 将依赖项排除在外

在尝试创建胖 jar 时,shadowJar 会遗漏很多依赖项。我从工作 pom.xml 创建了一个 build.gradle 文件。Maven 可以毫无问题地构建一个胖罐子。阅读 Gradle 关于构建 fat jar 的信息,shadowJar 插件似乎是推荐的方法。但是,我的 Gradle fat jar 给出了以下运行时错误:

显然,我的远罐子缺少了一些东西。果然,org/apache/hadoop/fs/PathId 和整个依赖目录都丢失了。尽管 pom.xml 没有明确包含 'org.apache.hadoop:hadoop-common' 依赖项,但我明确地将工件作为依赖项添加到我的 build.gradle 文件中,但仍然没有乐趣。

回答几个问题:

  • 存储库中是否有 hadoop-common 工件?是的。
  • 工件的命名版本是否在存储库中?是的
  • 类 PathId 是存储库中的工件吗?工件的“jar xf”表示“是”。

由于 Maven fat jar 完美运行,并且 unjaring Maven fat jar 显示 PathId 类(以及 Gradle fat jar 中缺少的其他类),那么我的 build.gradle 文件和/或 shadowJar 插件和/或 Gradle 有问题。

build.gradle文件:

我的 build.gradle 文件做错了什么?

  • 梯度 4.9
  • 操作系统:Linux 3.10.0-514.el7.x86_64 amd64
  • JVM:1.8.0_151(甲骨文公司 25.151-b12)
0 投票
1 回答
587 浏览

apache-flink - Apache Flink 的胖 JAR 的最大大小

我已经构建了一个 Apache Flink 应用程序并将其打包在一个带有Gradle Shadow Plugin的胖 JAR 中。生成的文件大小约为 114 MiB。当我尝试使用 Flink 的 Web UI 上传它时,它卡在“正在保存...”阶段。如果我使用 curl 手动上传结果是“413 Request Entity Too Large”:

那么有哪些选择呢?

UPD:我可以看到 JAR,/tmp/flink-web-UUID/flink-web-upload/UUID/flink-all.jar但 Flink 无法识别它(在 UI 上不可见)。

0 投票
1 回答
129 浏览

java - 仅具有依赖项的 Uberjar

我正在使用谷歌云数据流来运行具有很多依赖项的 apache Beam 作业。通常,除非我 uberjar 整个项目,否则数据流将拒绝执行图表,因为依赖项列表太长。

有没有办法只将项目依赖项放在 uberjar 中,让我的其余数据流留在外面?我认为,由于依赖项是相当静态的,因此当我的项目中只有几个类发生更改时,我可以节省大量时间来重新加载和重新上传整个 uberjar。

0 投票
1 回答
138 浏览

eclipse - “未找到 ID 为 'org.xtext.xtend' 的插件。” 错误

我正在按照本教程构建语言服务器 https://www.eclipse.org/community/eclipse_newsletter/2017/may/article5.php

但是,当我尝试构建 shadowJar 时,我不断收到此错误:

下面是我的父脚本的 build.gradle 文件

0 投票
1 回答
250 浏览

dockerfile - Fat Jar 实现语言服务器

我正在尝试构建一个语言服务器,以作为 eclipse che 的 sidecar 实现。我从我创建的 xtext 语言服务器构建了一个胖 jar。我可以使用这个胖 jar 在 dockerfile 中实现我的语言服务器,以便将我的语言服务器作为容器运行吗?

我写了一个 Dockerfile 如下:

“dsl-language-server-ls.jar”是通过构建我的项目(即LS)制作的jar文件。我的问题是,我可以通过包含上述 dockerfile 中的 .jar 文件来运行我的语言服务器吗?它实际上在 eclipse che 中工作,但我仍然遇到管道损坏错误和超时错误,这让我怀疑我的方法。

语言服务器初始化错误

这是我得到的错误。