Blog About Contact

Automatic release packaging w/ version numbers for Netbeans Java Projects...

Published Sat, 14 Nov 2009 • 1 comments

http://www.flickr.com/photos/lrargerich/3029485203/I just did a nice little Netbeans build.xml hack for the visural-wicket project to add a build target which packages a release of the library for distribution (e.g. on Google Code).

A version number is added to the project in the root level file version.properties

#  Copyright 2009 Richard Nichols.
# 
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
# 
#       http://www.apache.org/licenses/LICENSE-2.0
# 
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#  under the License.

project.version=0.1

A licence file to be copied into the distribution archive is also added in licence.txt

Then finally the build.xml target

    <target name="-pre-init">
        <property file="version.properties"/>
        <property name="dist.jar" value="dist/${ant.project.name}-${project.version}.jar"/>
    </target>

    <target name="package_for_release" depends="jar,javadoc">
        <mkdir dir="build/release"/>
        <copy file="${dist.jar}" todir="build/release/"/>
        <copy file="licence.txt" todir="build/release/"/>
        <mkdir dir="build/release/doc"/>
        <copy todir="build/release/doc">
            <fileset dir="dist/javadoc" includes="**"/>
        </copy>
        <mkdir dir="build/release/src"/>
        <copy todir="build/release/src">
            <fileset dir="src" includes="**"/>
        </copy>
        <mkdir dir="build/release/test"/>
        <copy todir="build/release/test">
            <fileset dir="test" includes="**"/>
        </copy>
        <zip basedir="build/release/" includes="**" destfile="dist/${ant.project.name}-${project.version}.zip"/>
    </target>

Basically all we do here is to create a new temp folder in build/release, which will copy all the distro files into and then zip into a final archive. We also do a hack to change the dist.jar property to include the version number extracted from the version.properties file. This needs to be "-pre-init" as properties in Ant are immutable once set.

The task copies through the Javadocs, source, tests, binary JAR and licence and packages it into an appropriately named .ZIP.

The target & associated files are appropriate to be used in any Netbeans Java project - there is no hard-reference to visural-wicket.


About the Author

Richard Nichols is an Australian software engineer with a passion for making things.

Follow him on twitter or subscribe by RSS or email.

You might also enjoy reading -


Discuss / Comment

There are 1 comments.

Add a comment

  • {{e.error}}

Thanks for your comment!/

Required.
Valid email address required.
Required.
Posting message, please wait...