GNU Crypto B/W logo

 The GNU Crypto project

Apache ANT Coding Style

ANT xml source files in the repository must be written in conformance to the following Code Conventions:
  1. Source files

    ANT source files should begin with the xml directive <?xml version="1.0"?>, followed by the project standard copyright notice:

       $Id: AntStyle.html,v 1.3 2003/10/06 01:53:51 raif Exp $
       Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
       This file is part of GNU Crypto.
       GNU Crypto is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation; either version 2, or (at your option)
       any later version.
       GNU Crypto is distributed in the hope that it will be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       General Public License for more details.
       You should have received a copy of the GNU General Public License
       along with this program; see the file COPYING.  If not, write to the
          Free Software Foundation Inc.,
          59 Temple Place - Suite 330,
          Boston, MA 02111-1307
       Linking this library statically or dynamically with other modules is
       making a combined work based on this library.  Thus, the terms and
       conditions of the GNU General Public License cover the whole
       As a special exception, the copyright holders of this library give
       you permission to link this library with independent modules to
       produce an executable, regardless of the license terms of these
       independent modules, and to copy and distribute the resulting
       executable under terms of your choice, provided that you also meet,
       for each linked independent module, the terms and conditions of the
       license of that module.  An independent module is a module which is
       not derived from or based on this library.  If you modify this
       library, you may extend this exception to your version of the
       library, but you are not obligated to do so.  If you do not wish to
       do so, delete this exception statement from your version.
  2. Names

    Always use lowercase names.

    Use hyphens to compose target names, dots to compose property names and finally underscores to compose idref names. For example:

    <target name="amoun-ra">...
    <target ... if="install.dir">...
    <patternset id="toplevel_files">...
  3. Indentation

    Do not use tabs. Always use spaces. Three spaces should be used as the unit of indentation.

    1. Line length

      Avoid lines longer than 100 characters, since they're not handled well by many terminals and tools.

    2. Wrapping lines

      When an ANT xml element will not fit on a single line, break it on an attribute basis and align all attribute names. For example:

      <javac destdir="classes" debug="${debug}" optimize="${optimize}"
             srcdir="src" includes="gnu/crypto/**/*.java"/>

    Target group comments help separate visually blocks of related targets. Use the following before each group:

    Minimal tests to pass before release .......................................
    <target ... />
  5. Example

    Refer to the project's build.xml as an example of these recommendations.

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to There are also other ways to contact the FSF.

Please send comments on these web pages to, send other questions to

Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Last Modified: $Date: 2003/10/06 01:53:51 $