Настроить разрешение: = необязательно из плагина пакета maven

Мне нужна помощь, чтобы настроить зависимость как необязательную,

Использование 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 будет содержать разрешение:=необязательно для этой библиотеки, но изменения не будут отражены.

Ожидание: junit.framework;разрешение:=необязательно

но в сгенерированном файле манифеста junit.framework

Я пропустил какую-либо конфигурацию, чтобы отразить ее разрешение как необязательное в сгенерированном файле манифеста?

При исследовании Maven-Bundle-Plugin, BundlePlugin.java File я понял, что если артефакт содержит необязательное значение true, то оно отражается в сгенерированном файле манифеста как разрешение: = необязательное

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 

   <scope>provided</scope> 
   <optional>true</optional> 
</dependency> 

Но предыдущее решение должно работать в соответствии с исходным кодом BundlePlugin.java,

направь меня дальше.


person Subrahmanyam Sistha    schedule 31.08.2018    source источник


Ответы (1)


Вам просто нужно удалить косую черту (/), которую вы разместили вокруг resolution=optional:

<Import-Package> 
    org.junit.*;resolution=optional,
    junit.framework.*;resolution=optional
</Import-Package>
person Dusan Borgula    schedule 11.04.2019