当前位置: 首页 > 知识库问答 >
问题:

在 Maven 和 Java 9 中将第三方工件与拆分包结合使用

洪河
2023-03-14

我正在尝试使我的项目为Java 9做好准备,并且遇到了拆分包(工件共享同一包)的问题。

我的应用程序至少依赖于两个第三方遗留工件(用Java构建的

[ERROR] module myapp reads package P from both A and B

这是正确的,因为包P存在于A.jar和B.jar中,但没有重叠的类。我知道这是Java 9的一个问题,我在中研究了建议的解决方案https://blog.codefx.org/java/java-9-migration-guide/#fixes-2.总之,要么是“修复代码”(不可能,因为是第三方JAR),要么是“使用命令行选项运行”(其中最有趣的可能是——补丁模块

将其中一个第三方模块(或两个)包装在一个简单模块中,该模块只显式导出模块实际需要的包,而不做任何事情。

但是我如何在Maven(3.5.0)中实现这一目标,我目前拥有的只是一个

欢迎任何指向示例的提示或指针。


共有1个答案

程祯
2023-03-14

请查询http://mail-archives . Apache . org/mod _ mbox/Felix-users/200709 . mbox/< f 034315 f 398 de 24 C9 a76 FB 51 da fab 709 fc 9638 @ nets 13 ga . ww 300 . Siemens . net >

样品为我工作:

<Export-Package>
  org.hibernate.*;version=${pkgVersion};-split-package:=merge-last                       

</Export-Package>

同样的答案:为什么我会收到这个“拆分包”警告?

 类似资料:
  • 我添加了respone头(“cross-origin-opener-policy”,“same-origin”)来使用SharedArrayBuffer(以支持webassembly)。但是现在我在我的页面中添加第三方JS时遇到了麻烦,这将被跨源隔离阻止。有什么方法可以在webassembly中使用第三方JS吗?

  • mvn安装:install-file-dfile=~/dropbox/github/chatappserver/synthetica.jar-dgroupid=de.javasoft.plaf-dartifactid=synthetica-dversion=1.0.0-dpackaging=jar (这是针对syntheticablackeye.jar的) mvn安装:install-file-d

  • 问题内容: 我有一些使用第三方库的java9模块,它不是Java9模块,只是一个简单的实用jar。 但是,编译器抱怨它无法从我的实用程序中找到软件包。 我应该怎么做才能使用我的第三方库? 问题答案: 您可以将您的库用作 自动模块 。自动模块是没有模块描述符(即)的模块。 但是,您需要指定什么名称来引用自动模块?自动模块的名称是从JAR名称派生的(除非此JAR包含属性)。完整的规则很长(请参阅Jav

  • 我有一些使用第三方库的java9模块,它不是java9模块,只是一个简单的实用程序jar。 但是,编译器抱怨它找不到来自我的实用程序的包。 我应该做什么在启用使用我的第三方库?

  • 在感觉自己已经掌握了如何使用OSGi之后,我尝试向我的应用程序添加第三方依赖,特别是log4j2,该应用程序使用ApacheFelix并与maven捆绑插件捆绑。不幸的是,我似乎陷入了依赖地狱。 我尝试过使用许多maven捆绑包策略,如导入包,嵌入依赖,wrapImportPackage,Embed-Transitive,以及设置特定的版本号,仅举几例。以下是我的pom在这个插件中的样子: 我觉得

  • 我现在正在和流星一起工作,我试图通过在数字变化时添加过渡来让它看起来更“真实的时间”。我能看到的最好的第三方软件包是http://github.hubspot.com/odometer/。