我需要帮助将依赖项配置为可选,
使用maven-bundle-plugin:3.4.0,
在“导入软件包”部分中,它们称为“分辨率:可选”
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.4.0</version>
<extensions>true</extensions>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
<Export-Package>*</Export-Package>
<Import-Package>
org.junit.*;/resolution=optional/,
junit.framework.*;/resolution=optional/
</Import-Package>
<_nouses>true</_nouses>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
生成的期望OSGI清单文件应包含 resolution:=对该库是可选的,但更改未反映出来。
期望: junit.framework; resolution:=可选
但在生成的清单文件中 junit.framework
我是否错过任何配置以将其分辨率反映为 生成清单文件?
在调查Maven-Bundle-Plugin,BundlePlugin.java文件时,我意识到 如果工件包含可选的true,则反映在 生成清单文件作为分辨率:=可选
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
但是根据BundlePlugin.java,先前的解决方案应该可以工作 源代码
引导我继续前进。
答案 0 :(得分:0)
您只需要删除resolution=optional
周围的斜杠(/):
<Import-Package>
org.junit.*;resolution=optional,
junit.framework.*;resolution=optional
</Import-Package>