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

Posted

技术标签:

【中文标题】我可以选择我在 Maven 依赖项中使用的唯一包来在 Eclipse 中导出可运行的 jar 吗?【英文标题】:Can i select the only packages I used within my maven dependecies to export a runnable jar in eclipse? 【发布时间】:2021-05-14 18:33:08 【问题描述】:

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

org.bytedeco javacv平台 1.5.1

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

【问题讨论】:

是的,请参阅此处查看选项列表:github.com/bytedeco/javacpp-presets/wiki/… 【参考方案1】:

是的,你可以排除你不需要的,像这样:

<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” ")。

【讨论】:

以上是关于我可以选择我在 Maven 依赖项中使用的唯一包来在 Eclipse 中导出可运行的 jar 吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Maven 依赖项中显示省略的版本:树?

Eclipse 中的项目无法解析 Maven 依赖项中存在的 jars

在 Maven 依赖项中定位资源的 URI 方案?

为啥即使我的 maven 依赖项中有第三方依赖项,也只需要 OSGi 容器中的第三方依赖项?

为啥有时会跳过 maven 依赖项中的版本号?

如何找出是不是在 Maven 应用程序中使用了依赖项中的任何类?