java - 如何在 Maven 项目中包含已编译的二进制文件?
问题描述
我正在开发一个开源项目,并试图弄清楚如何将JPen库合并到其中。这是 sourceforge 上提供的一个开源库,它封装了驱动程序,因此您可以在 Java 中使用数字平板电脑。
不幸的是,该项目似乎不再维护,并且源中包含的 pom 不起作用。我花了一些时间调整 pom 文件,但无法构建它。幸运的是,编译后的二进制文件确实可以工作,我可以在使用 Ant 构建和运行的非 Maven 项目中使用它们。
我想让这个与 maven cut 一起工作,找不到任何关于如何做到这一点的信息。由于该项目未在中央发布,并且由于我无法在自己的机器上构建项目,因此我试图弄清楚如何让 Maven 将编译的二进制文件识别为依赖项。这些库包含一些使用 JNI 编译的二进制文件,因此除了包含一个 jar 文件之外,这可能会带来一些变化。
任何人都知道我将如何将此依赖项添加到我的 Maven 项目中?
解决方案
在您的情况下,使用Maven解决问题的快速方法是手动将 jar 安装为依赖项,如我的评论中链接的Maven文档中所述。
您可以使用以下命令:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
提供适当的group-id、artifact-id、version和package你就拥有了在你的 pom 文件中导入依赖的所有信息:
<dependencies>
...
<dependency>
<groupId><group-id></groupId>
<artifactId><artifact-id></artifactId>
<version><version></version>
</dependency>
...
</dependencies>
这将解决您机器上的构建问题。
如果您共享您的项目,那么您必须更进一步。
如果您在公司中共享,那么拥有像artifactory或nexus这样的内部存储库是一个好习惯。
在这种情况下,您只需将新的本地依赖项手动上传到您的公司存储库,然后您的所有 coulleuges 都应该能够构建您的项目而无需任何手动操作。
如果您想将您的项目作为一个开源项目发布并使其可供每个人使用,那么您有不同的路径可以遵循。
您可以在 pom 上添加依赖项,然后在README中编写如何手动安装 jar 以及从何处获取它。
我看到的最后一种可能性是,您拥有创建分叉的项目的所有权。
使用开源许可证应该始终可以做到这一点,但请注意并查看它。
一旦你分叉代码,你必须自己构建它,我读到你不能这样做,但你应该解决问题并进行构建。
此时,您可以在 Maven 中央存储库上发布。
一个好的起点是联系原作者并请求许可和帮助。
推荐阅读
- c++ - 如果字符数为偶数,则打印一个 char 字符串,或者去掉中间字符
- huawei-mobile-services - 此设备中没有可用的 Google 服务
- api - 在颤振中调用get api时获得响应但没有获得键值,一些渲染问题,直到我搜索到相同的
- php - 如何使用 php_pdo_oci 从数据库中选择数据?
- reactjs - 如何更改图表中的标签?
- r - 我怎么知道 R 中曲线数据的顶点 x 在哪里?
- html - 如何将图像缩放为与段落相同的大小?
- php - 将关联数组简化为随机的唯一值对
- amazon-sqs - aws-cdk:我无法向现有 SQS 添加访问权限
- php - 我想做一个在线招聘网站