2010-12-07 3 views
1

J'ai un projet avec produit un bundle OSGI utilisant le maven-bundle-plugin. La configuration ressemble à ceci:Problème maven-bundle-plugin (OSGI)

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <version>2.1.0</version> 
    <extensions>true</extensions> 
    <inherited>true</inherited> 
    <configuration> 
     <instructions> 
      <Export-Package>${bubble.osgi.exports}</Export-Package> 
      <Import-Package>${bubble.osgi.imports}</Import-Package> 
      <Embed-Dependency>${bubble.osgi.embed.dependencies}</Embed-Dependency> 

      <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy> 
     </instructions> 
     <versions> 
      <bubble.osgi.version.clean>${project.version}</bubble.osgi.version.clean> 
     </versions> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>cleanVersions</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Le résultat du projet est un fichier jar avec tous les trucs osgi, dépendances, etc. inclus intégrées. Je préférerais avoir 2 jars comme résultat, un avec les trucs osgi inclus et un sans jar, car les dépendances incorporées provoquent des problèmes en l'utilisant comme un simple pot.

Existe-t-il un autre moyen que d'utiliser le plugin d'assemblage maven?

Répondre

2

Vous pouvez déplacer la configuration maven-plugin-paquet dans le profil séparé et utiliser quelque chose comme

mvn package -Posgi ou par défaut. Mais il y aura seulement un artefact produit par construction.

2

Je recommande d'utiliser 2 fichiers pom.xml différents (dans le projet) qui produiront 2 artefacts différents.

La valeur par défaut pom.xml devrait générer la bibliothèque plaine comme foo: bar: 1.0.0

Une autre pom-osgi.xml devrait générer la bibliothèque OSGi comme Foor: bar-OSGi: 1.0.0

Pour construire la bibliothèque avec une autre utilisation de pom

mvn -f pom-osgi.xml install