当前位置: 首页 > 知识库问答 >
问题:

创建一个包含所有从属jar的jar

韦嘉颖
2023-03-14

我正在尝试创建一个jar文件,其中包含所有的依赖jar文件。Maven创建了一个单独的lib文件夹,并将所有的jar复制到其中,然后可执行jar就会工作,因为jar和lib位于同一位置,但我希望jar是主jar的一部分,而不是在lib文件夹中。我该怎么做?

共有1个答案

韩琛
2023-03-14

您应该使用Maven Assembly插件或Maven Shade插件。

事实上,JAR文件格式本身并不支持包含依赖项(有一个20年前的RFE记录)。所以你可以实现你的要求,但它总是某种变通办法。例如,您必须小心可能的文件名冲突--这是Shade插件试图解决的问题,Assembly插件更容易使用,但会不断覆盖文件。

看看这个例子,如何使用组装插件以及如何处理Dll:使用Maven在Jar中打包Dll-单目标

 类似资料:
  • 这个问题与这个问题有关-但是,由于弃用而支持,它不起作用。它确实拾取了用声明的依赖项。然而,由于它被弃用,使用它不是一个选项(无论如何,当它被删除时,我们会回到这里) 我有一个Gradle任务: 除了测试依赖之外,还有一个依赖项: 从IDE运行很好。然而,当我部署到Raspberry Pi(或在本地使用jar结果)时,我会遇到以下异常: 由以下行触发: 在静态编程语言方法中,返回

  • 问题内容: 我需要创建一个Spring bean,使其门店,,一个HttpServletRequest的对象的属性,这样,因为我需要我可以注入这个bean到其他豆类。 在我看来,这些属性不会随任何URI更改,因此最好将其初始化一次(无论如何,多次传递实例根本不那么昂贵)。 问题是,如何将实例注入配置Bean?我更喜欢基于xml的注入。最可能的是,我们需要注入它作为一个,但我不知道会是什么或者这个对

  • 问题内容: 我想创建一个包含其他JAR库的可执行JAR文件。但是当我执行JAR时,它给出了类路径问题的错误。 我该如何解决类路径问题? 问题答案: 我想您可以这样尝试; 这是一个简单的示例供您提问。首先,假设我们有一个项目目录,例如。然后,在此工作目录中创建一个主类 HelloWorld.java ,其中包含其他JAR文件,例如。现在,我们必须将主类HelloWorld和commons-lang.

  • 我有两个jar(比如A.jar和B.jar),其中包含一些文件。我想创建第三个jar(比如c.jar),它只包含B.jar中的文件,而不包含A.jar中的文件。是否有用于执行此操作的java API。 谢谢

  • 你能帮我解决这个问题吗? 谢了!

  • 我正在尝试制作一个.jar文件(这是我第一次),我很困惑。我了解如何使用命令提示符创建一个简单的jar文件,但对于我的程序,我导入了JavaMail API和我创建的另一个库(名为ArrayLibrary,其中填充了排序方法)。我如何在一个jar文件中创建这些?