2016-02-15 1 views
0

Я строю .kar-файл, но когда я бегу mvn package я получаю эту ошибку:Почему я получаю предупреждение «с разделенным пакетом»?

[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ common --- 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/v2 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/istack 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-core, Jar:istack-commons-runtime] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/v2/model/impl 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/marshaller 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/v2/runtime/unmarshaller 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/util 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/unmarshaller 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/istack/logging 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-core, Jar:istack-commons-runtime] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/api 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/v2/util 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/v2/runtime 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/istack/localization 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-core, Jar:istack-commons-runtime] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 
[WARNING] Bundle se.eman.path.to.my.package:common:bundle:1.0.0-SNAPSHOT : Split package, multiple jars provide the same package:com/sun/xml/bind/v2/model/annotation 
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning 
Package found in [Jar:jaxb-impl, Jar:jaxb-core] 
Class path   [Jar:., Jar:camel-core, Jar:slf4j-api, Jar:jaxb-impl, Jar:jaxb-core, Jar:jaxb-api, Jar:istack-commons-runtime, Jar:FastInfoset, Jar:jsr173_api, Jar:camel-groovy, Jar:groovy-all, Jar:commons-logging, Jar:slf4j-log4j12, 
Jar:log4j] 

Мой ПОМ .xml:

<packaging>bundle</packaging> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <version>2.4.0</version> 
      <extensions>true</extensions> 
      <configuration> 
       <instructions> 
        <Bundle-SymbolicName>${project.groupId}.common</Bundle-SymbolicName> 
        <Bundle-Name>${project.name}</Bundle-Name> 
        <Bundle-Version>${project.version}</Bundle-Version> 
        <!-- TODO: Insert your needed exports here --> 
        <Export-Package>*,se.eman.path.to.my.package.*</Export-Package> 
       </instructions> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-core</artifactId> 
     <version>${camel-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-groovy</artifactId> 
     <version>${camel-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>${junit.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-test</artifactId> 
     <version>${camel-version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-test-spring</artifactId> 
     <version>${camel-version}</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

Я просто не могу понять что вызывает эти ошибки. Когда я читаю пакет split, я получаю очень полезный совет, который следует избегать сплит-пакета. Да ... Я не контролирую, что такое когда-либо за jaxb-impl, jaxb-core или com/sun/*.

Любые идеи по устранению неполадок?

ответ

1

Значение по умолчанию для экспорта-пакета является {local-packages} и не *

С директивой Export-Package: *, вы просите BND экспортировать все зависимости вашего проекта.

Снимите * или использовать {local-packages}

Редактировать:

Обратите внимание, что вы должны только экспорт общественного API из Bundle. Все остальное должно быть конфиденциальным. По умолчанию maven-bundle-plugin экспортирует все пакеты, кроме пакета, содержащего impl или internal. Если вы можете, вы должны придерживаться этого соглашения и опустить директиву Export-Package или явно экспортировать свои общедоступные пакеты.

+0

Я знаю, что комментарии вроде «спасибо» обескуражены, но ... Спасибо !!! :) –

+1

Возможно, это сработало, но экспорт всех '{local-packages}' тоже очень плохая практика. Вы должны экспортировать только те пакеты, которые формируют ваш открытый API. Все остальное должно быть внутренним/частным. –