java - 编译 JAR 文件及其所有 JAR 依赖项

标签 java maven dependencies

我有一个从 here 下载的 JAR 文件.事实证明,要运行此 JAR,它需要其他几个 JAR 文件,例如 bson4jackson-2.7.0.jar jackson-annotations-2.9.0.jar。

是否可以将我与其他 JAR 文件一起下载的 JAR 编译为单个胖 JAR 或具有依赖项的 JAR?是否有 Maven 命令来执行此操作?

最佳答案

您需要使用 maven shade插件它会创建一个 fat jar 子这里是一个例子

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <finalName>jar2</finalName>
                            <transformers>
                                <!-- add Main-Class to manifest file -->
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.greg.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

关于java - 编译 JAR 文件及其所有 JAR 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51212447/

相关文章:

javascript - Jersey Rest 服务仅返回 404

maven - 使用 IntelliJ 12.1.2 和 Maven 项目时 Grails 应用程序不同步

java - 如何获取主类的 Java 类依赖项列表?

java - 应用程序配置保存到文件或对象序列化

java - 从java中具有字母和数字组合的字符串中提取单词?

java - 服务器发送的事件在传入 React 时会成倍增加

java - 通过引用子索引从 Firebase 检索数据

java - 将两个 Java Maven 项目合并为一个

java - 在 Java 中避免依赖 hell 的首选步骤是什么?

android - 从Gradle中删除库会导致 “no resource found”错误