A freeform project is defined to be a directory containing a subdirectory named
nbproject
inside of which is a file project.xml
matching the pattern
<project xmlns="http://www.netbeans.org/ns/project/1"> <type>org.netbeans.modules.ant.freeform</type> <configuration> <!-- metadata blocks … --> </configuration> </project>
The metadata blocks must consist of at least a <general-data>
section, and
possibly some domain-specific sections such as <java-data>
in different
namespaces. The currently available XML schemas for validation are as follows:
Revisions of schemas are marked numerically, so …/freeform-project-java/2.xsd
is an updated variant of …/freeform-project-java/1.xsd
. The namespaces defined
by the schemas are the same as the above URLs but without the .xsd
suffix.
Other than project.xml
, there is no mandatory layout for a freeform project
(hence its name!). It is common for there to be an Ant build script named
build.xml
at top level but this is not required.
The behavior of the project inside the IDE is controlled by the contents of
project.xml
, together with any other files referenced by it. The permitted
metadata sections are described in turn, followed by "best-practices"
recommendations on how the complete project should be structured.