7

可能重复:
使用 Maven 在 jar 中包含依赖项

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

4

3 回答 3

3

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

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

于 2012-06-18T10:10:27.327 回答
0

使用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>
于 2012-06-18T10:14:01.740 回答
-1

您将在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>

于 2012-06-18T10:10:49.213 回答