HTTPS SSH

Custom (Jenkins) Ant Build

NaturalONE is an Eclipse-based IDE for the language NATURAL by Software AG. This project explores its support for automation using Ant tasks.

Using Ant outside of NaturalONE/Eclipse

To use Ant outside of Eclipse you can either download and unpack the latest release - which is currently 1.10.1 - or use the one packaged with NaturalONE - which is 1.9.2 for Designer 9.8/NaturalONE 8.3.5. Ant is a plugin for Eclipse and provided in folder plugins/org.apache.ant_1.9.2.v201404171502/. The easiest way to use it is to run Ant directly from there, as shown by the script ant.bat in the project root.

set ANT_HOME=...\eclipse\plugins\org.apache.ant_1.9.2.v201404171502
call %ANT_HOME%\bin\ant %*

Test the Ant installation with ant -version.

Deployment

Deployment is synonymous with Upload, Catalog and/or Stow. The initial deployment Ant script is generated inside NaturalONE. When the NaturalONE perspective is active, the list of new items contains Deploy Ant scripts:

New/Other/DeployNaturalAnt

Follow the wizard and define the needs of your deployment, e.g. full or incremental deploy mode. You can ignore all questions about version control (CVS, SVN) if you do not plan to use the script to also pull changes from your version control system. All values can be changed later in the Ant file. NaturalONE will create a deploy.xml build file. Its help task gives the following output:

This utility performs deployment processing for NaturalONE.

The following targets are available:
  checkout               do initial repository checkout
                         of the specified project resources
  update                 do incremental repository
                         update of the project resources
  build                  initiate the build process

  checkts                check for time stamp conflicts
                         (server must be capable of time stamp handling)

The following options are available:
  -Dnatural.ant.project.rootdir={dirname}
      specify root directory for project
  -Dnatural.ant.deploy.full=yes/no
      specify deploy mode (full=yes/incremental=no)
  -Dnatural.ant.deploy.scope=1/2/3
      specify scope of affected files
        1: process only changed files
        2: process changed files and their dependents
        3: process all files required for catalog
  -Dnatural.ant.failonerror=yes/no
      specify if the script should fail on errors (default:no)
  -Dnatural.ant.retain.header.info=yes/no
      retain timestamp and user info from source header (default:no)
  -Dnatural.ant.resolve.time.stamp.conflicts=yes/no
      (only applicable in conjunction with target 'checkts')
      resolves time stamp conflicts by updating the local time stamps
      with the current time stamps from the server (default:no)
  -logfile {filename}
      use given file for log

Invoking

TODO classpath and invocation from outside

ant -Dnatural.eclipse.home=...\eclipse ^
    -Dnatural.eclipse.bundle.location=...\eclipse\plugins ^
    -f deploy.xml build %*

Build Support

Deploying only modified NATURAL files

See my detailed article Only modified files in Jenkins for more information on how to find all modified files during Jenkins Build. The scripts are in the src folder.

See my detailed article IDE Support for Scripts for more information on how to get Groovy support into NaturalONE.

License

New BSD License, see license.txt in repository.