sarathonline.com/blog | Trouble viewing this page? Give Feedback .
Try my blog on: Ajax Version
Search

Monday, November 24, 2008

Sample ant build file for OSGi bundles

Okay.. after I put the example the other day, I realised it is so worse to be clicking on export and choosing the manifest file all the time. So For a quick start people can use this build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="BundleName" default="deploy" basedir=".">
    <property name="version" value="1.0.0" />

    <property name="src" location="src" />
    <property name="build" location="build" />
    <property name="deployloc" location="/home/to/equinox/bundles" />
    <property name="dist" location="dist" />
    <property name="buildfilename" value="${ant.project.name}-${version}.jar"/>

    <path id="classpath.buildtime">
        <pathelement location="/home/to/equinox/equinox.jar" />
        <pathelement location="/home/to/dependency.jar" />
    </path>

    <target name="init" depends="clean">
        <tstamp />
        <mkdir dir="${build}" />
    </target>

    <target name="compile" depends="init" description="compile the source ">
        <javac srcdir="${src}" destdir="${build}" classpathref="classpath.buildtime" />
    </target>

    <target name="dist" depends="compile" description="generate the distribution">
        <mkdir dir="${dist}"/>
        <jar jarfile="${dist}/${ant.project.name}-${version}.jar" basedir="${build}" manifest="META-INF/MANIFEST.MF">
            <manifest>
                <attribute name="Bundle-Name" value="${ant.project.name}"/>
                <attribute name="Bundle-Version" value="${version}"/>
            </manifest>
        </jar>
    </target>

    <target name="deploy" depends="dist">
        <copy file="${dist}/${buildfilename}" todir="${deployloc}" overwrite="true"/>
    </target>

    <target name="clean" description="clean up">
        <delete dir="${build}" />
        <delete dir="${dist}" />
    </target>
</project>
Feel free to add to it, and contribute your additions in comments.

2 comments:

  1. I use the EquinoxSDK. So what do I have to do with /home/to/equinox/equinox.jar?
    I can't find the equinox.jar.
    When I build the Project, I get: package org.osgi.framework does not exist
    ReplyDelete
  2. replace "/home/to/equinox/" the correct path (folder location which has the equinox.jar file)
    ReplyDelete

© SarathOnline.com 2000-'11