Избегайте копирования некоторых пакетов в OSGi Bundle.

Я хочу исключить копирование некоторых пакетов при создании пакета OSGi с помощью плагина пакета maven.

Я использовал !package name в разделе экспорта. Но поскольку я использую @openejb-core-${openejb.version}.jar!/**, в разделе include-resource этот пакет копируется в пакет.

Как я могу избежать копирования определенного пакета или набора пакетов с помощью плагина пакета maven?

Я могу использовать имена в разделе ресурсов, но я бы не стал перечислять их по одному.


person Thusitha Thilina Dayaratne    schedule 12.06.2015    source источник


Ответы (1)


Обычно раздел сборки пакета osgi выглядит так:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-scr-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-Category>Your Category/Company</Bundle-Category>
                    <Import-Package>
                       <!-- put here some optional depependencies which are already provided by other bundles -->
                        org.apache.lucene.*;resolution:=optional,
                        *
                    </Import-Package>
                    <Export-Package>
                        com.yourproject.code.to.be.exported.*;version=${project.version}
                        <!-- exclude packages by negating with the prefix !, see http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html for more info -->
                        !com.do.not.include.package.*;version=x.y.z
                    </Export-Package>
                    <Embed-Dependency><!--put here some thirdparty artifacts you want to embed in your bundle--></Embed-Dependency>
                    <Include-Resource>{maven-resources}</Include-Resource>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

См. также http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html

person d33t    schedule 12.06.2015
comment
Ага. Я знаю это. Я хочу включить некоторые ресурсы в свой пакет. Поэтому я помещаю @openejb-core-${openejb.version}.jar!/**, затем он копирует ресурсы + все файлы классов в пакет, даже если я не экспортирую некоторые из этих пакетов. - person Thusitha Thilina Dayaratne; 12.06.2015