问题标签 [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.
maven - maven - 如何构建具有依赖项的 uberjars
我有一个生成 jar 文件的 Maven 模块。我被要求开发其他几个 uberjar 文件作为构建过程的副产品。我还被告知这 2 个 jar 文件是 applet jar 文件,需要包含来自 maven 模块依赖项的一些类。
我环顾四周并缩小到这三个选项 -
- Maven Assembly 插件 - 这可以从 maven 模块生成的类构建自定义 jar。不能包含第三方依赖项。
- 通过 Maven 使用 ant - 使用maven-dependency-plugin解包依赖项,然后通过 ant 脚本打包 applet jar。
- 使用Maven shade 插件- 虽然这个插件不直接适合我的要求,但我可以让它工作。
虽然我可以使用 (b) 和 (c),但我无法决定使用哪一个。我注意到的一件事是使用依赖插件非常耗时。
我想知道人们是否有其他方法可以达到相同的要求。
clojure - 如何在 uberjar 进程中添加钩子(使用 lein 构建)
我想在 uberjar 进程中添加一个钩子。具体示例是将 maxmind geoip dat 文件下载到资源文件夹中,以便每次部署时都会将更新版本捆绑到 jar 中。示例/建议感谢感谢!
clojure - 制作没有源文件的 lein uberjar
我正在使用“lein uberjar”来制作我的项目的可执行 jar 文件。jar 已正确创建并按预期运行。
我只想知道是否可以在生成的 .jar 中不包含我的源 .clj 文件,因为我打算分发它,并且我不希望我的源文件可供公众使用。
我正在使用 lein 1.7.1
如果 lein 不可能,如果我只是从 jar 中手动删除 .clj 文件,它会起作用吗?我做了一个测试并且它有效,我想确保这样做是安全的。
提前致谢。
java - 使用 Gradle 构建 uberjar
我想构建一个包含项目所有传递依赖项的 uberjar(AKA fatjar)。我需要添加哪些行build.gradle
?
这是我目前拥有的:
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 文件名
非常感谢您的时间。
java - 什么是超级罐子?
我正在阅读 Maven 文档并遇到了这个名字uber-jar
。
什么uber-jar
意思,它的特点/优势是什么?
java - 难以创建 uber-jar
我正在尝试捆绑一个包含所有依赖项的 java 存档 (JAR)。首先,我尝试使用maven 程序集插件,尽管它缺少一些类。jar-with-dependencies 文档建议使用maven -shade-plugin,这最终会丢失不同的类。我认为正在发生的事情是使用相同包名的多个依赖项似乎被跳过了,所以像 slf4j 这样的东西被跳过了。
我真正喜欢的是打包的 jar 包含自包含的库,而不是重新打包它们。
我几乎放弃了,并认为我只是将bin 描述符用于程序集插件,它只压缩了 jar 本身而没有依赖项。
注意:我知道其他人也问过类似的问题,这导致了使用阴影/组装插件的建议,尽管没有人说明我遇到的具体问题。
更新:由 khmarbaise 要求,以下显示了一个 POM,其中所有课程都被跳过。请注意,还有另一个 JAR 使用相同的包结构但是是本地化包,包括本地化包但省略了所有类。
请注意,上面的 POM 是一个第三方库,不发布到 maven,只存在于我们本地的 nexus repo 中。
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? 中摘录的一个片段?):
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?
ant - 蚂蚁:如何创建包括来自的文件?
path
给定一个像下面这样的 Ant元素:
如何创建一个jar
包含所有文件的 uber-path
而无需再次拼出所有文件名?以下工作,但包含重复的代码,而不是我想要的: