Классы карт Google не отображаются в Import-Package в MANIFEST.MF

Я использую maven-bundle-plugin и пытаюсь связать зависимость карт Google.

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-ClassPath>*;scope=compile|runtime</Bundle-ClassPath>

                    <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
                    <Embed-Directory>OSGI-INF/lib</Embed-Directory>
                    <Import-Package>
                        *
                    </Import-Package>
                    <_exportcontents>
                                *
                    </_exportcontents>
                </instructions>
            </configuration>
        </plugin>

Когда я проверяю JAR (Manifest.MF), я вижу com.google.maps.model в Export-Package, но не вижу в Import-Package. Как я могу получить его и в Import-Package?

Этот вопрос связан с ранее нерешенным вопросом osgi-component">Как импортировать класс из стороннего файла jar в компонент OSGi


person Anthony    schedule 20.07.2015    source источник


Ответы (2)


Ну, здесь ничего не должно быть в Import-Package, так как вы не импортируете классы карт Google, вы их встраиваете. Вы упаковываете google jar в свой собственный пакет, а Import-Package применяется только тогда, когда вы хотите использовать эти классы, экспортированные из другого пакета.

Что касается другого вопроса, я не совсем уверен (я вообще не использую плагин пакета maven), но «exportcontents *» кажется подозрительным, слишком большой экспорт может привести к тонким проблемам.

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

person Frank Lee    schedule 20.07.2015

Если вы встраиваете банку в свой пакет и хотите получить доступ к ее классам, используйте инструкцию Include-Resource, у нее есть возможность развернуть ресурс JAR (см. параметр @)

person Pushkin    schedule 19.10.2015