如何在Maven项目中包含编译的二进制文件?

时间:2018-10-03 09:37:39

标签: java maven

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

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

我想使它与maven cut一起使用,但找不到有关该操作的任何信息。由于此项目未在中央发布,并且由于我无法在自己的计算机上构建该项目,因此我试图找出如何使Maven将已编译的二进制文件识别为依赖项。这些库包括一些使用JNI编译的二进制文件,因此可能不仅仅包含jar文件,还会带来一些麻烦。

有人知道如何将这种依赖关系添加到我的maven项目中吗?

1 个答案:

答案 0 :(得分:0)

根据您的情况,使用 Maven 的快速解决方法是手动安装jar作为依赖项,如我的{{3}中链接的 Maven 文档中所述}。

您可以使用以下命令:

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

提供正确的 group-id 工件ID 版本 packagin ,您便拥有了所有信息将依赖项导入到您的pom文件中:

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

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

如果您共享您的项目,则必须执行进一步的步骤。

如果您在公司中共享股份,那么最好使用内部存储库(例如 artifactory nexus )。

在这种情况下,您只需要手动将新的本地依赖项上载到公司存储库中,然后所有合规性就可以无需任何手动操作即可构建项目。

如果您想将您的项目发布为一个开源项目并使每个项目都可用,那么您将有一条不同的路要走。

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

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

使用开放源代码许可证应该总是可能的,但是请当心并了解一下。

一旦您分叉了代码,就必须自己构建它,我读到您做不到,但是您应该解决问题并进行构建。

到那时,您就可以在Maven中央存储库上发布了。

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