osgi运行时包解析

0aydgbwb  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(254)

我正在尝试 Package 以下aws库: aws-java-sdk-sts 以及 aws-java-sdk-core 以便将它们用作osgi包。
它们都是 com.amazonaws.auth 包裹。
如果我把它们 Package 成:

<bundle start-level="80">
  <![CDATA[wrap:mvn:com.amazonaws/aws-java-sdk-sts/1.11.534$Export-Package=com.amazonaws.auth.*,com.amazonaws.*]]>
</bundle>
<bundle start-level="80">
  <![CDATA[wrap:mvn:com.amazonaws/aws-java-sdk-core/1.11.534$Export-Package=com.amazonaws.auth.*,com.amazonaws.*]]>
</bundle>

卡拉夫自鸣得意地说,有两个链路径为 com.amazonaws.auth Package (从 aws-java-sdk-sts 一个来自 aws-java-sdk-core ).
因此,我做了以下工作:

<bundle start-level="80">
  <![CDATA[wrap:mvn:com.amazonaws/aws-java-sdk-sts/1.11.534$Export-Package=com.amazonaws.auth.*;-split-package:=merge-first,com.amazonaws.*]]>
</bundle>
<bundle start-level="80">
  <![CDATA[wrap:mvn:com.amazonaws/aws-java-sdk-core/1.11.534$Export-Package=com.amazonaws.auth.*;-split-package:=merge-first,com.amazonaws.*&Import-Package=*;resolution:=optional,com.amazonaws.auth,com.amazonaws.auth.policy,com.amazonaws.auth.policy.actions]]>
</bundle>

现在两个包都从
aws-java-sdk-sts com.amazonaws.auth 包,从而导致 java.lang.NoClassDefFoundError 每次我引用
aws-java-sdk-CORE com.amazonaws.auth 包裹。
我也试过了 -split-package:=merge-last 没有成功。
有没有办法加载 com.amazonaws.auth 来自两个的包 aws-java-sdk-sts 以及 aws-java-sdk-core 为了能够在运行时引用它们?
蒂亚!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题