首页 > 解决方案 > 如何在 Maven 项目中包含已编译的二进制文件?

问题描述

我正在开发一个开源项目,并试图弄清楚如何将JPen库合并到其中。这是 sourceforge 上提供的一个开源库,它封装了驱动程序,因此您可以在 Java 中使用数字平板电脑。

不幸的是,该项目似乎不再维护,并且源中包含的 pom 不起作用。我花了一些时间调整 pom 文件,但无法构建它。幸运的是,编译后的二进制文件确实可以工作,我可以在使用 Ant 构建和运行的非 Maven 项目中使用它们。

我想让这个与 maven cut 一起工作,找不到任何关于如何做到这一点的信息。由于该项目未在中央发布,并且由于我无法在自己的机器上构建项目,因此我试图弄清楚如何让 Maven 将编译的二进制文件识别为依赖项。这些库包含一些使用 JNI 编译的二进制文件,因此除了包含一个 jar 文件之外,这可能会带来一些变化。

任何人都知道我将如何将此依赖项添加到我的 Maven 项目中?

标签: javamaven

解决方案


在您的情况下,使用Maven解决问题的快速方法是手动将 jar 安装为依赖项,如我的评论中链接的Maven文档中所述。

您可以使用以下命令:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

提供适当的group-idartifact-idversionpackage你就拥有了在你的 pom 文件中导入依赖的所有信息:

<dependencies>
    ...
    <dependency>
        <groupId><group-id></groupId>
        <artifactId><artifact-id></artifactId>
        <version><version></version>
    </dependency>
    ...
</dependencies>

这将解决您机器上的构建问题。

如果您共享您的项目,那么您必须更进一步。

如果您在公司中共享,那么拥有像artifactorynexus这样的内部存储库是一个好习惯。

在这种情况下,您只需将新的本地依赖项手动上传到您的公司存储库,然后您的所有 coulleuges 都应该能够构建您的项目而无需任何手动操作。

如果您想将您的项目作为一个开源项目发布并使其可供每个人使用,那么您有不同的路径可以遵循。

您可以在 pom 上添加依赖项,然后在README中编写如何手动安装 jar 以及从何处获取它。

我看到的最后一种可能性是,您拥有创建分叉的项目的所有权。

使用开源许可证应该始终可以做到这一点,但请注意并查看它。

一旦你分叉代码,你必须自己构建它,我读到你不能这样做,但你应该解决问题并进行构建。

此时,您可以在 Maven 中央存储库上发布。

一个好的起点是联系原作者并请求许可和帮助。


推荐阅读