我可以选择我在 Maven 依赖项中使用的唯一包来在 Eclipse 中导出可运行的 jar 吗?

问题描述

我在 Java 应用程序中使用 Javacpp。在我的 pom 中,我有

org.bytedeco javacv平台 1.5.1

我在项目中唯一的导入与 ffmpeg 和 opencv 相关。然而,当我创建可运行的 Jar 时,它是巨大的(数百兆字节),因为它有很多来自 javacv-platform 附带的其他包的 jars 对我来说是无用的(我可以在 maven 依赖项中看到它们)。无论如何要删除我从未在此依赖项中使用过的包?因为我可以在我创建的可运行 jar 中看到所有这些。

解决方法

是的,您可以排除不需要的内容,如下所示:

<dependency>
        <groupId>org.bytedeco</groupId>
        <artifactId>javacv-platform</artifactId>
        <version>${javacv-platform.version}</version>
        <exclusions>
            <exclusion>
                <groupId>javacv-platform</groupId>
                <artifactId>flycapture-platform</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javacv-platform</groupId>
                <artifactId>libfreenect-platform</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

但实际上“javacv-platform”的JAR中没有代码,所以你可能只想包含你想要的东西(我假设只是“javacv”、“opencv-platform”和“ffmpeg-platform” ").