Hi,

This question has probably been asked a thousand times in a thousand
variations, but I was wondering how I could use maven-bundle-plugin to
create an eclipse library plug-ins in the case where I'm mainly
importing external jarfiles and resources and aggregating them into a
single package that can then be used as a resource for all the other
plug-ins in the product.

Now it compiles and creates the manifest/library successfully, but
eclipse refuses to resolve the plug-in.

The main error I get in eclipse from the following POM file (in about a
thousand variations) is "No available bundle exports package 'ch.ethz.ssh2'"


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0";
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd";>


   <!-- Project Properties -->
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.orgz</groupId>
   <artifactId>com.orgz.library</artifactId>
   <version>0.0.1</version>
   <description>Library Plug-in</description>
   <name>com.orgz.library</name>
   <packaging>bundle</packaging>


   <!-- Orginization Information -->
   <organization>
       <!-- Orginization Name for the POM file.
           Automatically sets the "Provider" Portion of the plug-in
manifest -->
       <name>XYZ</name>
       <!-- Orginization URL for the POM file.
           Automatically sets the Documentation URL Portion of the
plug-in manifest -->
       <url>XYZ</url>
   </organization>


   <!-- Dependencies -->
   <dependencies>

       <!-- Plug-In Dependencies -->

       <dependency>
           <groupId>org.eclipse.core</groupId>
           <artifactId>runtime</artifactId>
           <version>[3.3.0, 4.0.0)</version>
           <scope>provided</scope>
           <optional>true</optional>
       </dependency>

       <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
           <version>[1.0.4,)</version>
           <scope>provided</scope>
           <optional>true</optional>
       </dependency>

       <dependency>
           <groupId>ant</groupId>
           <artifactId>ant</artifactId>
           <version>1.6.5</version>
           <scope>provided</scope>
           <optional>true</optional>
       </dependency>

       <!-- Third-party Libraries -->
       <dependency>
           <groupId>xmlbeans</groupId>
           <artifactId>xbean</artifactId>
           <version>1.0.4</version>
           <scope>compile</scope>
       </dependency>

       <dependency>
           <groupId>jboss</groupId>
           <artifactId>jbossall-client</artifactId>
           <version>3.2.3</version>
           <scope>compile</scope>
       </dependency>

       <dependency>
           <groupId>commons-configuration</groupId>
           <artifactId>commons-configuration</artifactId>
           <version>1.1</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>commons-collections</groupId>
           <artifactId>commons-collections</artifactId>
           <version>3.1</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>commons-beanutils</groupId>
           <artifactId>commons-beanutils</artifactId>
           <version>1.6.1</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>commons-lang</groupId>
           <artifactId>commons-lang</artifactId>
           <version>2.0</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>commons-digester</groupId>
           <artifactId>commons-digester</artifactId>
           <version>1.4.1</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>commons-net</groupId>
           <artifactId>commons-net</artifactId>
           <version>1.4.0</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>snmp4j</groupId>
           <artifactId>snmp4j</artifactId>
           <version>1.0</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>sftp</groupId>
           <artifactId>sftp</artifactId>
           <version>1.0</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>com.jamonapi</groupId>
           <artifactId>jamon</artifactId>
           <version>2.5</version>
       </dependency>
   </dependencies>


   <!-- Build Plugin -->
   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.felix</groupId>
               <artifactId>maven-bundle-plugin</artifactId>
               <version>1.4.0</version>
               <extensions>true</extensions>

               <!--
                   the following instructions build a simple set of
public/private classes into an OSGi bundle
               -->
               <configuration>
                   <manifestLocation>META-INF</manifestLocation>
                   <instructions>

                       <_exportcontents>*</_exportcontents>

                       <!-- Export-Package>

*;version:=${pom.version};-split-package:=merge-first;-noimport:=true
                           </Export-Package -->

                       <Embed-Dependency>
                           *;scope=compile|runtime;inline=false
                       </Embed-Dependency>

                       <Embed-StripGroup>true</Embed-StripGroup>

                       <Embed-Transitive>false</Embed-Transitive>


                       <!-- These just get made into the corresponding
manifest entries -->
                       <Bundle-SymbolicName>
                           com.orgz.library
                       </Bundle-SymbolicName>
                       <Require-Bundle>
                           org.apache.commons.logging,
                           org.eclipse.core.runtime
                       </Require-Bundle>
                       <Bundle-Version>${pom.version}</Bundle-Version>
                       <Bundle-RequiredExecutionEnvironment>
                           J2SE-1.5
                       </Bundle-RequiredExecutionEnvironment>
                       <Bundle-ActivationPolicy>
                           lazy
                       </Bundle-ActivationPolicy>
                       <Eclipse-ExtensibleAPI>
                           true
                       </Eclipse-ExtensibleAPI>
                       <Eclipse-BuddyPolicy>
                           registered
                       </Eclipse-BuddyPolicy>
                   </instructions>
               </configuration>
           </plugin>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                   <source>1.5</source>
                   <target>1.5</target>
               </configuration>
           </plugin>
       </plugins>
   </build>
</project>


Any help would be appreciated.

~T


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to