Как исключить именованный пакет из зависимости, которая существует в другой зависимости, с помощью подключаемого модуля Maven Bundle (BND)?

У меня есть две зависимости:

<dependency>
    <groupId>org.postgis</groupId>
    <artifactId>postgis-jdbc</artifactId>
    <version>1.5.2</version>
</dependency>
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>com.springsource.org.postgresql.jdbc4</artifactId>
    <version>8.3.604</version>
</dependency>

Обе зависимости экспортируют пакет:

  • орг.постгрес

Как исключить экспорт org.postgres из postgis-jdbc при использовании команды wrap подключаемого модуля Maven Bundle?


person wulfgarpro    schedule 22.10.2012    source источник


Ответы (2)


Добавьте следующее в раздел конфигурации в pom:

<Export-Package>!org.postgres</Export-Package>

Или вы можете игнорировать любой пакет

<Export-Package>!*</Export-Package>
person Achim Nierbeck    schedule 22.10.2012

Используя подключаемый модуль Maven Bundle, я не смог найти практический способ выборочного исключения экспорта пакетов для выбранных обернутых зависимостей. Мое решение состояло в том, чтобы вместо этого встроить оба com.springsource.org.postgresql.jdbc4 и postgis-jdbc в мой пакет, а не экспортировать их пакеты:

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
      <instructions>
            ...
            <Embed-Dependency>
                postgresql;postgis-jdbc
            </Embed-Dependency>
            ...
        </instructions>
    </configuration>
    <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>bundle</goal>
           </goals>
        </execution>
    </executions>
</plugin>
person wulfgarpro    schedule 27.10.2012