Krysalis Centipede
Published: 01/16/2004 12:34:39
 
  krysalis at sf.net > krysalisFont size:      
 

How To... Start a Project - Project Descriptors

PDF
PDF

Module Descriptor

A module is a collection of sub-projects in the same code repository. The file module.xml describes the modules used in your project and is is an enhanced version of the Gump module descriptor. This tells gump a little about your project and how to build it; the enhanced tags do not prevent Gump from using it, but add important information about the module that is given by centipede to all the build files as Ant properties.

It needs to be customised for each project. In it you can define details such as:

  • CVS repository
  • Bug Tracking system
  • Mailing lists
  • Project description
  • What the project is and Why it was created
  • Vendor
  • License
  • Credits
  • Version details
  • Dependencies of the project

The file below is the example module.xml file, that comes with the krysalis-project template. Documentation for most of these elements can be found on at the Gump project (specifically the Gump overview documentation). The parts that are unique to Centipede are discussed below.

<?xml version="1.0"?>

<module name="krysalis-template-krysalis-project">


    <url href="http://www.krysalis.org/templates/krysalis-project"/>

    <site hostname="krysalis.sourceforge.net"
        remotedir="/home/groups/k/kr/krysalis/htdocs/templates/krysalis-project"/>


    <cvs repository="sourceforge"
        host-prefix="cvs.krysalis"
        dir="krysalis-project"
        module="krysalis-template"
        href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/krysalis/krysalis-template/krysalis-project"/>

    <jars repository="maven" 
          href="http://www.ibiblio.org/maven/"/>
      
    <description>
      Recomended minimum configuration for a Krysalis Project.
    </description>

    <detailed>
       Krysalis-project is a template for a Centipede module.
       It is intended to provide a "cut and paste" template for the
       creation of new projects.
    </detailed>

    <what>
        <goal>Allow new projects to be started quickly and easily when
        using Centipede.</goal>
           
    </what>

    <why>
      The faster it is to get working on a project the better. Since
      most projects have the same initial requirements in terms of
      directory structure and deliverables a "cut and paste" template
      provides a good starting point.
    </why>

    <vendor>Krysalis Community Project - krysalis.org</vendor>

    <licence legal="./legal">
             This software is released under the Krysalis Patchy Software License 1.1_01.
             For detailed legal and licensing issues, please read the LICENSE.* files
             in the /legal directory.
    </licence>

    <credits>
        <credit>This software includes software developed by the Apache Software Foundation
                (http://www.apache.org/).
        </credit>
    </credits>

    <project name="krysalis-project">

        <version major="0"
            minor="0"
            fix  ="1"
            tag="alpha1-dev"/>

        <package>org.krysalis</package>

        <ant target="gump" vm="1.2"/>

        <work nested="build/classes"/>

        <home nested="build"/>

        <code type="java/plain" dir="src/java"/>
        <test type="test/junit" dir="src/test"/>
        <documentation type="xml/forrest" dir="src/documentation"/>
          
    </project>
</module>
      

Centipede Specific Nodes in Module.xml

jars

Fixme ( rdg )
What is this?

description

A short description of this module This is used when generating some of the automated documentaiton for the project.

detailed

A longer description of this module This is used when generating some of the automated documentaiton for the project.

what

A description of the goals of this module. There can be any number of goal nodes as children of this node, each one defining a goal of ther module.

why

The reasons for the exstence of this module.

vendor

The name of the organisation who owns and manages this module. This is used in the automated docuemnt generation process.

licence

A description of the licence terms for this module. This node also has an attribute, legal that indicates the lcoation of the directory containing legal inforamtion about the project, for example, the liences applicable to the module. This path is is relative to the project root

credits

This node can have any number of child credit nodes. Each one containing an aknowledgment to other code or projects that have been included in this module.

project

version

Indicates the version number of this code base. This node takes four attributes as follows:

major
The major version number, that is the x in x.y.z-tag.
minor
The minor version number, that is the y in x.y.z-tag.
fix
The fix number, that is the z in x.y.z-tag.
tag
The release tag, that is the tag in x.y.z-tag.
package

The java package name that is used for this project. For example, org.krysalis.

code

The code element indicates where the source code for the project is and what type of code it is. It has the following attributes:

type
The type of source code, currently only "java/plain" is supported, which indicates standard java code.
dir
The location of the source code for this project, relative to the project root.
test

The test element indicates where the source code for the project tests and resources are located. It has the following attributes:

type
The type of tests, currently only "test/junit" is supported, which indicates junit tests.
dir
The location of the test code for this project, relative to the project root.
documentation

The docuemntation element indicates where the source code for the projects docuemntation can be found. It has the following attributes:

type
The type of tests, currently only "xml/forrest" is supported, which indicates Forrest xdocs.
dir
The location of the documentation source code for this project, relative to the project root.

by Andrew C. Oliver, Ross D. Gardler



Valid HTML 4.01!Valid CSS!