【问题标题】:How to make jar of jars using maven [duplicate]如何使用maven制作罐子[重复]
【发布时间】:2012-06-20 07:06:33
【问题描述】:

可能重复:
Including dependencies in a jar with Maven

我是 maven 的初学者,想使用 maven 构建一个包含依赖 jar 的 jar。但是,我不能这样做。请帮助我。

【问题讨论】:

  • 不是重复的。另一个问题是关于以任何方式将所有依赖项放在一个 jar 中。这个问题专门关于制作一罐罐子。在这种情况下,不得将 jar 解压缩为平面结构,而是将其保留为不同的 jar 文件(很像 war 文件格式)。从 sridhar 对 JHS 接受的答案的评论中可以清楚地看出这一点——它没有做他想做的事。

标签: java maven maven-plugin


【解决方案1】:

如果您尝试创建一个包含您的应用程序及其所需库的 jar,有两种方法(据我所知)可以做到这一点。第一个是One-Jar,它使用一个特殊的类加载器来允许jar 的嵌套。第二个是UberJar,(或Shade),将包含的库炸开,把所有的类放到顶层jar中。

我还应该提到 UberJar 和 Shade 分别是 Maven1 和 Maven2 的插件。如下所述,您还可以使用组装插件(实际上它更强大,但更难正确配置)。

【讨论】:

  • 感谢您的建议,但我想制作一个 jar 说 jarFinal.jar 包含 jar1.jar、jar2.jar、jar3.jar 等。给出的建议使一个 jar 从依赖罐子。我想在不解压类文件的情况下制作一罐罐子。
  • @sridhar 听起来 One-Jar 可以满足您的要求。
【解决方案2】:

使用shade插件:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
    <version>1.7</version>
<executions>
    <execution>
    <phase>package</phase>
    <goals>
        <goal>shade</goal>
    </goals>
    </execution>
</executions>
</plugin>

【讨论】:

  • 感谢您的建议,但我想做一个 jar 说 jarFinal.jar 包含 jar1.jar、jar2.jar、jar3.jar 等。给出的建议使一个 jar 从依赖罐子。我想在不解压类文件的情况下制作一罐罐子。
【解决方案3】:

您需要在pom.xml 文件中包含以下内容。

<build>
<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>MainClass with the packages</mainClass>
                </manifest>
            </archive>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
    </plugin>
</plugins>

【讨论】:

  • 感谢您的建议,但我想制作一个 jar 说 jarFinal.jar 包含 jar1.jar、jar2.jar、jar3.jar 等。给出的建议使一个 jar 从依赖罐子。我想在不解压类文件的情况下制作一罐罐子。
  • @sridhar 你能在罐子里做罐子吗?这个接受的答案是否使“jar in jar”?
  • 这并没有回答问题,因为它打开了罐子。最接近的答案是 Hip Hip Array 建议使用 One-Jar,因为它实际上维护了罐子的嵌套。
猜你喜欢
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 2012-03-11
  • 1970-01-01
  • 2016-04-14
  • 2017-05-20
  • 2015-06-27
相关资源
最近更新 更多