Hi,
I want to build a WAB using maven-bundle-plugin. My WAB will include
some dependencies in WEB-INF/lib and the immediate classes in
WEB-INF/classes/. I have an additional requirement that Bundle-ClassPath
must not include ".", as it does not make sense for a WAB. I had issues
using maven-bundle-plugin to build such WABs in the past as discussed in
[1]. I thought I would be able to overcode those issues with *-wab*
instructions of new bnd, but I am not. /Should bnd not remove "." from
Bundle-ClassPath when it sees *-wab* instruction?/ Given below is an
entire pom.xml and the generated manifest.
Thanks,
Sahoo
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sahoo.osgisamples</groupId>
<artifactId>bundleplugin.wab-with-webinflib-1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Bundle plugin sample demonstrating building of a WAB with
WEB-INF/lib</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.2.0</version>
<extensions>true</extensions>
<configuration>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>war</supportedProjectType>
<supportedProjectType>bundle</supportedProjectType>
</supportedProjectTypes>
<instructions>
<Embed-Dependency>*;scope=compile;inline=false</Embed-Dependency>
<Embed-Directory>WEB-INF/lib</Embed-Directory>
<_wab>src/main/webapp</_wab>
<Web-ContextPath>/test</Web-ContextPath>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle-bundle</id>
<phase>package</phase>
<inherited>false</inherited>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>sahoo.osgisamples</groupId>
<artifactId>entities1</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
[MANIFEST bundleplugin.wab-with-webinflib-1-1.0-SNAPSHOT.jar]
Bnd-LastModified 1303438835114
Build-Jdk 1.6.0_21
Built-By ss141213
Bundle-ClassPath
WEB-INF/classes,.,WEB-INF/lib/entities1-1.0-SNAPSHOT.jar
Bundle-ManifestVersion 2
Bundle-Name Bundle plugin sample
demonstrating building of a WAB with WEB-INF/lib
Bundle-SymbolicName
sahoo.osgisamples.bundleplugin.wab-with-webinflib-1
Bundle-Version 1.0.0.SNAPSHOT
Class-Path
Created-By Apache Maven Bundle Plugin
Embed-Dependency *;scope=compile;inline=false
Embed-Directory WEB-INF/lib
Export-Package sahoo.samples.sample_wab1.api
Import-Package
javax.annotation,javax.ejb.embeddable,javax.persistence,javax.servlet,javax.servlet.annotation,javax.servlet.http,javax.transaction
Manifest-Version 1.0
Tool Bnd-1.15.0
Web-ContextPath /test