问题标签 [uberjar]

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 回答
2092 浏览

maven - maven - 如何构建具有依赖项的 uberjars

我有一个生成 jar 文件的 Maven 模块。我被要求开发其他几个 uberjar 文件作为构建过程的副产品。我还被告知这 2 个 jar 文件是 applet jar 文件,需要包含来自 maven 模块依赖项的一些类。

我环顾四周并缩小到这三个选项 -

  1. Maven Assembly 插件 - 这可以从 maven 模块生成的类构建自定义 jar。不能包含第三方依赖项。
  2. 通过 Maven 使用 ant - 使用maven-dependency-plugin解包依赖项,然后通过 ant 脚本打包 applet jar。
  3. 使用Maven shade 插件- 虽然这个插件不直接适合我的要求,但我可以让它工作。

虽然我可以使用 (b) 和 (c),但我无法决定使用哪一个。我注意到的一件事是使用依赖插件非常耗时。

我想知道人们是否有其他方法可以达到相同的要求。

0 投票
1 回答
618 浏览

clojure - 如何在 uberjar 进程中添加钩子(使用 lein 构建)

我想在 uberjar 进程中添加一个钩子。具体示例是将 maxmind geoip dat 文件下载到资源文件夹中,以便每次部署时都会将更新版本捆绑到 jar 中。示例/建议感谢感谢!

0 投票
2 回答
2171 浏览

clojure - 制作没有源文件的 lein uberjar

我正在使用“lein uberjar”来制作我的项目的可执行 jar 文件。jar 已正确创建并按预期运行。

我只想知道是否可以在生成的 .jar 中不包含我的源 .clj 文件,因为我打算分发它,并且我不希望我的源文件可供公众使用。

我正在使用 lein 1.7.1

如果 lein 不可能,如果我只是从 jar 中手动删除 .clj 文件,它会起作用吗?我做了一个测试并且它有效,我想确保这样做是安全的。

提前致谢。

0 投票
4 回答
44927 浏览

java - 使用 Gradle 构建 uberjar

我想构建一个包含项目所有传递依赖项的 uberjar(AKA fatjar)。我需要添加哪些行build.gradle

这是我目前拥有的:

0 投票
3 回答
7423 浏览

maven - 如何使用 maven 和 fatjar 插件将单个依赖项包含到 jar 中

我对这个问题感到有点愚蠢,但我不知道如何将 SINGLE 依赖项(jdom.jar)添加到另一个 jar 中。

上下文:我们为我们的应用程序开发了一个简单的插件,这个插件有很多依赖。我们使用 fatjar 将 jdom.jar 包含在其中。我正在尝试修复这个插件中的一个错误,所以我决定同时“maven-ize”它。(我们刚刚切换到 maven)这个插件是在运行时加载的,所以我们想要与它打包的唯一依赖项是 jdom.jar。

问题:发现有maven fatjar插件!不幸的是,我找不到任何文档,并且这个 maven 插件将每个依赖项添加到输出 jar 中。经过多次尝试,我决定放弃这个 fatjar 插件并寻找另一个。我找到了 one-jar , shade 但在快速阅读它们之后,它们看起来像是添加了每个依赖项。

问题:像这样只将 jdom.jar 添加到我的插件 jar 中的简单方法是什么:

另外我不想更改清单或输出 jar 文件名

非常感谢您的时间。

0 投票
7 回答
119767 浏览

java - 什么是超级罐子?

我正在阅读 Maven 文档并遇到了这个名字uber-jar

什么uber-jar意思,它的特点/优势是什么?

0 投票
1 回答
425 浏览

java - 难以创建 uber-jar

我正在尝试捆绑一个包含所有依赖项的 java 存档 (JAR)。首先,我尝试使用maven 程序集插件,尽管它缺少一些类。jar-with-dependencies 文档建议使用maven -shade-plugin,这最终会丢失不同的类。我认为正在发生的事情是使用相同包名的多个依赖项似乎被跳过了,所以像 slf4j 这样的东西被跳过了。

我真正喜欢的是打包的 jar 包含自包含的库,而不是重新打包它们。

我几乎放弃了,并认为我只是将bin 描述符用于程序集插件,它只压缩了 jar 本身而没有依赖项。

注意:我知道其他人也问过类似的问题,这导致了使用阴影/组装插件的建议,尽管没有人说明我遇到的具体问题。

更新:由 khmarbaise 要求,以下显示了一个 POM,其中所有课程都被跳过。请注意,还有另一个 JAR 使用相同的包结构但是是本地化包,包括本地化包但省略了所有类。

请注意,上面的 POM 是一个第三方库,不发布到 maven,只存在于我们本地的 nexus repo 中。

0 投票
1 回答
411 浏览

java - 如何使用部署为 uberjar 的库?

我正在尝试使用作为 uber-jar 提供的 Reflections 0.9.8 库。如果我在项目的构建路径中添加它的 JAR(“reflections-0.9.8-uberjar”),那么 Eclipse 将找不到它的任何类类型:Reflection、ClasspathHelper 等等。

如果我提取单个“reflections-0.9.8.jar”(不是uber的)并将其添加到构建路径中,那么在编译时一切正常,但是当我执行我的项目时,我得到一个 NoClassDefFoundError(我是很确定这是由于缺乏依赖关系造成的)。

我还尝试在 uber-jar 中添加每个 .jar,但我仍然会得到 NoClassDefFoundError。

我需要做什么才能使用这个作为 uberjar 分发的库?

编辑: 如果有帮助,这是我想调用反射的方法(这是我从Can you find all classes in a package using reflection? 中摘录的一个片段?):

0 投票
1 回答
222 浏览

swing - 用 Leiningen 制作的 uberjar 中的图标消失了

我用一个简单的 Swing gui 在 Clojure 中制作了一个时髦的应用程序,其中包含一些带有一些图标的 JButton,我希望我的非程序员朋友也能够使用它。

当我使用“lein run”启动它时,它在我自己的计算机上一切正常,但是当我使用“lein uberjar”创建一个包并运行它时,图标消失了,JButtons 为空白。

图标是项目根目录中“resources”文件夹中的 .png,打包后在 .jar 中可见。要加载图标,我这样做:

我试图放入一个小打印语句来查看发生了什么:

当做'lein run'时,它会打印

并且在打包的 .jar 上执行“java -jar”时会打印

这正是 foo.png 所在的位置(除了我不完全确定感叹号发生了什么),但它仍然没有在 Swing gui 中绘制。

我也尝试过明确指定 project.clj 中的资源文件夹

但它什么也没改变。

所以基本上我的问题可以归结为:如何使用'lein uberjar'来创建一个工作的hello-world.jar,其中包含一个包含自定义png图像的JButton?

0 投票
2 回答
605 浏览

ant - 蚂蚁:如何创建包括来自的文件?

path给定一个像下面这样的 Ant元素:

如何创建一个jar包含所有文件的 uber-path而无需再次拼出所有文件名?以下工作,但包含重复的代码,而不是我想要的: