Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7174823
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T16:08:31+00:00 2026-05-28T16:08:31+00:00

I am having trouble creating an Ant build script for our production apps. I

  • 0

I am having trouble creating an Ant build script for our production apps.

I have been reading a lot about Ant, and bb-ant-tools. I have followed many stackoverflow questions on Ant & BB (referenced below in comments to “link” the questions). I would like help with a script more complex than the usual “Hello World!” style apps. My current build process is run entirely in Eclipse, and done manually.

For this question, I would like to ask how to use Ant to build a project that uses 2 (or more) different library projects (which also need to be built), without using Eclipse at all?

I have Ant, bb-ant-tools installed. I have built & deployed on device a basic Hello World, using these tools following basic examples. I have created a build script, and some property files; but when I run the scripts, the end product does not run on the phone (phone UI freezes on the launch screen).


I have 3 build scripts, one for each library, and one for the main app. These are identical, except for the project name (and could be combined into one common imported script at some point). Each of the 3 java projects has an Ant properties file related to it. I also use 3 common properties files for defining constants, storing info on the JDE & the code signing password.

  • common.properties:

    jde.home=C:/development/tools/bb-jde/jde4.5/components
    sigtool.jde = ${jde.home} 
    sigtool.password = xxx_pass_xxx
    
  • project.properties (for SOAP library):

    output=MySOAP
    type=midlet
    
  • project.properties (for internal SDK library):

    output=MySDK
    type=midlet
    

Update 1: I have updated the library property files since initial post. Previously I set type=library (based on RIM documentation). Based on my research outlined in this post (BlackBerry – use own JAR file in own project), I tried changing to type=midlet. This gives better results (at least on my platform BB JDE 5.0).

  • project.properties (for my app):

    output=MyApp
    title=App
    type=cldc
    vendor=Richard
    version=1.0.7
    description=A nice app
    icon=icon.png
    
  • build.xml (all the same except for the name at the top, and the 2 library scripts do not have filesets declared inside import.jars):

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <project name="MyApp" default="build">
    
        <!-- BLACKBERRY ANT TOOLS -->
        <property name="bb-ant-tools.home" location="C:/development/tools/bb-ant-tools" />
        <taskdef resource="bb-ant-defs.xml" classpath="${bb-ant-tools.home}/bb-ant-tools.jar" />
    
        <!-- CONFIG FILES -->
        <property file="${common.basedir}/common.properties" />
        <property prefix="project" file="project.properties" />
    
        <!-- FOLDERS -->
        <property name="dest.dir" location="build" />
    
        <!-- this is empty in the library scripts -->
        <path id="import.jars">
            <fileset dir="../MySDK/build" includes="*.jar" />
            <fileset dir="../MySOAP/build" includes="*.jar" />
        </path>
    
        <path id="src.files">
            <fileset dir="src" includes="**/*" />
            <fileset dir="res" includes="**/*" />
        </path>
    
        <!-- TARGET ACTIONS -->
    
        <target name="build" depends="">
            <mkdir dir="${dest.dir}" />
    
            <!-- work around a bug requiring app icons to be in the output folder -->
            <copy file="${basedir}/res/icon.png" tofile="${dest.dir}/icon.png" />
    
            <rapc 
                    jdehome="${jde.home}"
                    output="${project.output}" 
                    destdir="${dest.dir}" >
    
                <import refid="import.jars" />
                <src refid="src.files" />
                <jdp file="${basedir}/project.properties" />
            </rapc>
        </target>
    
        <target name="sign" depends="build">
            <sigtool
                    codfile="${dest.dir}/${project.output}.cod" 
                    jdehome="${sigtool.jde}" 
                    password="${sigtool.password}" />
        </target>
    
        <target name="clean">
            <delete dir="${dest.dir}" />
        </target>
    
    </project>
    

Update 2: I have updated the build.xml since the initial post. Target build now copies the app icon into the build output folder (${dest.dir}) to work around a bug in bb-ant-tools / rapc.


So this is a very simple Ant script, except:

  1. I would like to know how to trigger the sub-builds off from the main
    app build (my answer below deals with that).
  2. The big one, is that the resulting output from this does
    not work.

FWIW I have found the following popular resources, and list them so that they need not be added as answers, and to help anyone in the future looking for info:

  • Basic Ant Tutorial

  • Automating Eclipse-Based BlackBerry Project With Ant

  • How to use rapc from RIM

  • jarjar tool

  • and many answers here on stackoverflow – see my comments below

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T16:08:32+00:00Added an answer on May 28, 2026 at 4:08 pm

    This is what I’m using across multiple projects.

    <macrodef name="compile">
        <attribute name="buildversion" />
        <attribute name="description" />
        <sequential>
            <mkdir dir="${build.dir}" />
    
            <rapc output="${cod.name}_bbminterface"  destdir="${build.dir}" verbose="false" quiet="true" nowarn="true">
                <src>
                    <fileset dir="${bbminterface.src.dir}"/>
                </src>
                <import location="./lib/net_rim_bb_qm_platform.jar" />
                <jdp type="library" title="${app.name}_bbminterface" vendor="my vendor" version="@{buildversion}">
                    <entry title="${app.name}_bbminterface" description=""/>    
                </jdp>
            </rapc>
            <rapc output="${cod.name}_bbmimpl" destdir="${build.dir}" verbose="false" quiet="true" nowarn="true">
                <src>
                    <fileset dir="${bbmimpl.src.dir}"/>
                </src>
                <import location="./lib/net_rim_bb_qm_platform.jar" />
                <import location="${build.dir}/${cod.name}_bbminterface.jar" />
                <jdp type="library" title="${app.name}_bbmimpl" vendor="my vendor" version="@{buildversion}" runonstartup="true" startuptier="6">
                    <entry title="${app.name}_bbmimpl" description="" runonstartup="true" startuptier="6"/> 
                </jdp>
            </rapc>
    
            <rapc output="${cod.name}" destdir="${build.dir}" verbose="false">
    
                <src>
                    <fileset dir="${tmpsrc.dir}" />
                </src>
                <src>
                    <fileset dir="${res.dir}" />
                </src>
                <src>
    
                    <fileset file="${lib.dir}/paymentapi.jar" />
                </src>
                <import location="./lib/net_rim_bb_qm_platform.jar" />
                <import location="${build.dir}/${cod.name}_bbminterface.jar"/>
    
                <jdp type="cldc" title="${app.name}" vendor="my vendor" icon="../res/icon.png" version="@{buildversion}" description="@{description}" startuptier="7" ribbonposition="0">
                    <entry title="${app.name}" icon="../res/icon.png" description="@{description}" runonstartup="true" arguments="boot" systemmodule="true" startuptier="7" ribbonposition="0" />
                    <entry title="${app.name}" icon="../res/icon.png" description="@{description}" arguments="daemon" runonstartup="true" systemmodule="true" startuptier="7" ribbonposition="0" />
                </jdp>
            </rapc>
        </sequential>
    </macrodef>
    

    This is the compilation code. We’re compiling a few libraries and then the application, linking the just created libraries.

    Then for signing:

    <target name="sign" description="Sign the cod file">
        <sigtool codfile="${build.dir}/${cod.name}_bbminterface.cod" password=""/>
        <sigtool codfile="${build.dir}/${cod.name}_bbmimpl.cod" password=""/>
        <sigtool codfile="${build.dir}/${cod.name}.cod" password="" />
    </target>
    

    And then uploading to our OTA server:

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In TFS2010 I am having trouble creating Build Definitions . I have created a
I'm having little trouble creating a script working with URLs. I'm using urllib.urlopen() to
I am having trouble creating a table with MySQL. I have narrowed the problem
I'm having trouble creating a join in the codeigniter format, i have a MySQL
I've been having trouble creating a mechanism to allow the user to select a
I've been working on a dynamic question-and-answers system, but I'm having trouble creating a
I am using the Microsoft.Practices.EnterpriseLibrary Database tools and I'm having trouble creating a new
I'm having trouble creating a small AutoHotkey script to end all vsjitdebugger.exe processes on
I have a SQL query I'm having trouble creating using NHibernate Criteria: SELECT ID,
I'm having trouble creating a mouseover function with an NSTableView. The idea is that

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.