You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Sébastien BRUNOT <sb...@octo.com> on 2004/03/17 17:54:51 UTC

RE : More visual project descriptor documentation

Hi,

Another idea could be the release of a sample COMPLETE project.xml
documented. The documentation need to be completed first (for example :
what is the connection string for a subversion repository ?). Here is my
personal file for that (named project.xml.template) :

<================ BEGINING OF THE FILE
========================================================================
===========>
<?xml version="1.0" encoding="ISO-8859-1"?>
<project>

  <!-- the version of maven's project object model -->
  <pomVersion>3</pomVersion>
  
  <!-- a unique name for this project -->
  <id>SampleJ2EE</id>
  
  <!-- a short but descriptive name for the project -->
  <name>A Sample J2EE project to compare ant versus maven build
process</name>
  
  <!-- The version of the project under development, e.g.
       1.1, 1.2, 2.0-SNAPSHOT -->
  <currentVersion>1.0-SNAPSHOT</currentVersion>
  
  <!-- details about the organization that 'owns' the project -->
  <organization>
    <!-- The full name of the organization. -->
    <name>Octo Technology</name>
    <!-- The URL to the organization's home page. -->
    <url>http://www.octo.com/</url>
    <!-- The URL to the organization's logo image. This can be an URL
relative to the base directory of the generated
         web site, (e.g., /images/org-logo.png) or an absolute URL
(e.g., http://my.corp/logo.png). This value is used
         when generating the project documentation. -->
    <logo>http://images/octo-logo.jpg</logo>
  </organization>
  
  <!-- the year the project started -->
  <inceptionYear>2003</inceptionYear>
  
  <!-- The Java package name of the project. This value is used when
generating JavaDoc. -->
  <package>com.octo.j2ee.sample</package>
  
  <!-- The URL to the project's logo image. This can be an URL relative
to the base directory of the generated web site,
      (e.g., /images/project-logo.png) or an absolute URL (e.g.,
http://my.corp/project-logo.png). This is used when 
      generating the project documentation.-->
  <logo>/images/project-logo.jpg</logo>

  <!-- Optional. This is the Id of the Gump repository that this project
is part of (assuming it participates in the Gump 
       integration effort).-->
  <gumpRepositoryId/>
  
  <!-- Optional. A detailed description of the project. This element is
usually specified as CDATA to enable the use of HTML
       tags within the description. This description is used to generate
the front page of the project's web site.-->
  <description>
    This project is a sample J2EE project that is build with maven.
    The following maven sub projects are used : TO BE CONTINUED
  </description>
  
  <!-- a short description of what the project does -->
  <shortDescription>
    How to use maven for building a j2ee project.
  </shortDescription>

  <!-- the url to the project home page -->
  <url>http://localhost/samplej2ee</url>
  
  <!-- Optional. The URL to the project's issue tracking system. -->
  <issueTrackingUrl/>

  <!-- Optional. The hostname of the web server that hosts the project's
web site. This is used when the web site is deployed. -->
  <siteAddress>localhost</siteAddress>
  
  <!-- Optional. The directory on the web server where the public web
site for this project resides. This is used when the web site is
deployed. -->
  <siteDirectory>C:/Documents and Settings/sbrunot/Mes
documents/www/samplej2ee</siteDirectory>

  <!-- Optional. The server server where the final distributions will be
published. This is used when the distributions are deployed.
       If this isn't defined, the central repository is used instead as
determined by maven.repo.central and maven.repo.central.directory
   -->
  <distributionDirectory/>

  <!-- Information relating to the source configuration management
system used by this project. -->
  <repository>
    <!-- Optional. The source configuration management system URL that
describes the repository and how to connect to the repository. 
         This is used by Maven when building versions from specific ID.
The format of this element is as follows:
scm:<provider>:<provider-parameters>
         For cvs, the format for pserver repositories should be: 
             scm:cvs:pserver:user@host:/cvs/root:module-name
         For local networked repositories (eg. pserver to local machine)

             scm:cvs:lserver:user@host:/cvs/root:module-name
         For ssh access: 
             scm:cvs:ext:user@host:/cvs/root:module-nameRemember that
CVS will expect an environment variable called CVS_RSH to be set,
typically to ssh
             or your ssh client. 
         Some cvs clients support other protocols, such as ntserver and
extssh. Here's an example using CVS NT and ntserver: 
         scm|cvs|ntserver|user@server|e:\cvs|DeploymentNote the use of
the vertical bar as delimiter as the repository has a colon (:) in it. 
         For local file system repositories 
             scm:cvs:local:ignored:/cvs/root:module-name
         The delimiter is determined by the character after "scm". eg.
scm|cvs|pserver|user@host|/cvs/root|module-name is equivalent to that
listed above.
         This can be useful for Windows users who have : in their
cvsroot parameter (eg. D:\cvsroot) 
         Where pserver is the protocol used to access CVS, user@host is
the user name to log in to the specified cvs host, /cvs/root is the cvs
root directory, 
         and module-name is the name of the cvs module to be worked on 
         As an example, the settings for an Apache project are usually: 
 
scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:module-name
         Currently CVS, Starteam and SubVersion are the only supported
scm's. Others will be added as soon as possible 
    -->
    <connection/>
    <!-- Optional. Just like connection, but for developers, i.e. this
scm connection will not be read only. -->
    <developerConnection/>
    <!-- Optional. The URL to the project's browsable CVS repository -->
    <url/>
  </repository>

  <!-- Optional. Contains information on previous versions of the
project. This information is used when invoking the maven:dist target.
-->
  <versions>
    <!-- A unique identifier for a version. This ID is used to specify
the version that maven:dist builds. -->
    <id/>
    <!-- The external version number under which this release was
distributed. Examples include: 1.0, 1.1-alpha1, 1.2-beta, 1.3.2 etc. -->
    <name/>
    <!-- The name given in the version control system (e.g. cvs) used by
the project for the source code associated with this version of the
project.-->
    <tag/>
  </versions>
  
  <!-- Optional. Contains information on branches of the project. This
information is used when invoking the maven:dist target. Each branch
       is described by a tag element-->
  <branches>
    <!-- The branch tag in the version control system (e.g. cvs) used by
the project for the source code associated with this branch of the
project. -->
    <tag/>
  </branches>

  <!-- Contains information about a project's mailing lists. This is
used to generate the front page of the site's web site. -->
  <mailingLists>
    <!-- Each mailing list is described by a mailingList element, which
is then described by additional elements (described below). 
         The auto-generated site documentation references this
information. -->
    <mailingList>
      <!-- The name of the mailing list. -->
      <name/>
      <!-- The email address or link that can be used to subscribe to
the mailing list. If this is an email address, a mailto: link will
automatically
           be created when the documentation is created.-->
      <subscribe/>
      <!-- The email address or link that can be used to unsubscribe to
the mailing list. If this is an email address, a mailto: link will
automatically 
           be created when the documentation is created.-->
      <unsubscribe/>
      <!-- The link to a URL that can browse the archive. -->
      <archive/>
    </mailingList>
  </mailingLists>
  
  <!-- Describes the committers to a project. This is used to generate
the Project Team page of the project's web site. -->
  <developers>
    <!-- Each developer is described by a developer element, which is
then described by additional elements (described below). 
         The auto-generated site documentation references this
information.-->
    <developer>
      <!-- The full name of the developer. -->
      <name>Sebastien Brunot</name>
      <!-- The username of the developer. -->
      <id>sbrunot</id>
      <!-- The email address of the developer. -->
      <email>sbrunot@octo.com</email>
      <!-- The organization to which the developer belongs.-->
      <organization>Octo Technology</organization>
      <!-- The roles the developer plays in the project. Each role is
describe by a role element, the body of which is a role name. -->
      <roles>
        <role>developer</role>
      </roles>
      <!-- The URL for the homepage of the developer -->
      <url/>
      <!-- The timezone the developer is in. This is a number in the
range -14 to 14. -->
      <timezone>1</timezone>
    </developer>
  </developers>

  <!-- Describes the contributors to a project. This is used to generate
the Project Team page of the project's web site.
       Same as <developers> but with <contributor> tags -->
  <contributors/>
  
  <!-- Describes the licenses for this project. This is used to generate
the License page of the project's web site.
       Typically the licenses listed for the project are that of the
project itself, and not of dependencies.-->
  <licences>
    <!-- Each license is described by a license element, which is then
describe by additional elements (described below).
         The auto-generated site documentation references this
information. Projects should only list the license(s) that
         applies to the project and not the licenses that apply to
dependencies.-->
    <licence>
      <!-- The full legal name of the license. -->
      <name/>
      <!-- The official url for the license text. -->
      <url/>
      <!-- The primary method by which this project may be distributed. 
            repo : may be downloaded from the Maven repository 
            manual : user must manually download and install the
dependency.-->
      <distribution/>
    </licence>
  </licences>
  
  <!-- Describes the dependencies to a project. This is used to when
building a project. -->
  <dependencies>
    <!-- Each dependency is described by a dependency element, which is
then described by additional elements (described below).
         These dependencies are used to construct a classpath for your
project during the build process. 
         Maven can automatically download these dependencies from a
remote repository. 
         The filename that Maven downloads from the repository is
artifactId-version.jar where artifactId corresponds to the 
         artifactId element and version corresponds to the version
element. 
         When Maven goes looking for a dependency in the remote
repository, it uses the dependency element to construct the URL 
         to download from. This URL is defined as: 
           ${repo}/${groupId}/${type}s/${artifactId}-${version}.${type}
         Where 
           repo is the remote repository URL specified by
${maven.repo.remote} 
           groupId is taken from the dependency element 
           type is taken from the dependency element 
           artifactId is taken from the dependency element 
           version is taken from the dependency element 
    -->
    <dependency>
      <!-- The project group that produced the dependency, e.g. jboss.
-->
      <groupId/>
      <!-- The unique id for an artifact produced by the project group,
e.g. jboss-boot -->
      <artifactId/>
      <!-- The version of the dependency., e.g. 3.2.1 -->
      <version/>
      <!-- The name of jar file if it doesn't respect
<artifactId>-<version>.jar pattern.-->
      <jar/>
      <!-- The type of dependency. This defaults to jar. 
           Other known and recognised dependency types are: ejb and
plugin. -->
      <type/>
      <!-- The url of the dependency's homepage. 
           This url will be provided to the user if the jar file cannot
be downloaded from the central repository. -->
      <url/>
      <!-- Properties about the dependency. Various plugins allow you to
mark dependencies with properties. For example 
           the war plugin looks for a war.bundle property, and if found
will include the dependency in WEB-INF/lib. 
           For example syntax, check the war plugin docs. -->
      <properties/>
    </dependency>
  </dependencies>
  
  <!-- build information for the project -->
  <build>
    <!-- An address to which notifications regarding the status of
builds for this project can be sent.
         This is intended for use by tools which do unattended builds,
for example those providing for 
         continuous integration. Currently this is used by the
maven:gump-descriptor target -->
 
<nagEmailAddress>turbine-maven-dev@jakarta.apache.org</nagEmailAddress>
    <!-- This element specifies a directory containing the source of the
project. The generated build system 
         will compile the source in this directory when the project is
built. The path given is relative to 
         the project descriptor. -->
    <sourceDirectory>src/java</sourceDirectory>
    <!-- This element specifies how source code will be excluded or
included depending on the presence of a given
         class.-->
    <sourceModification>
      <!-- If the class with this name can not be loaded, then the
includes and excludes specified below will be 
           applied to the contents of the sourceDirectory
           Note: not all plugins support the sourceModifications
element. -->
      <className/>
      <!-- Describe the files to be included if the class was not found
-->
      <includes>
        <!-- This element specifies an Ant pattern of files to include
in a list. -->
        <include/>
      </includes>
      <!-- Describe the files to be excluded if the class was not found
-->
      <excludes>
        <!-- This element specifies an Ant pattern of files to exclude
from a list. -->
        <exclude/>
      </excludes>
    </sourceModification>
    <!-- This element specifies a directory containing the unit test
source of the project.
         The generated build system will compile these directories when
the project is being tested.
         The unit tests must use the JUnit test framework. The path
given is relative to the project descriptor.-->
    <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
    <!-- This element specifies a directory containing Aspect sources of
the project. The generated build system will 
         compile the Aspects in this directory when the project is built
if Aspects have been enabled (see the Aspectj 
         goals document). The path given is relative to the project
descriptor. -->
    <aspectSourceDirectory/>
    <!-- This element specifies unit tests associated with the
project.-->
    <unitTest>
      <!-- Describe the includes unit tests -->
      <includes>
        <!-- This element specifies an Ant pattern of files to include
in a list. -->
        <include>**/*Test.java</include>
      </includes>
      <!-- Describe the excludes unit tests -->
      <excludes>
        <!-- This element specifies an Ant pattern of files to exclude
from a list. -->
        <exclude>**/NaughtyTest.java</exclude>
      </excludes>
    </unitTest>
    <!-- This element describes all of the resources associated with a
project or unit tests. Each resource is described
         by a resource element, which is then described by additional
elements (described below). These resources are 
         used to complete the jar file or to run unit test. -->
    <resources>
      <!-- Each resource must be defined in a resource element. -->
      <resource>
        <!-- Describe the directory where the resource is stored. The
path may be absolute, or relative to the project.xml file. -->
        <directory>src/conf</directory>
        <!-- Describe the resource target path. For example, if you want
that resource appear into a specific package 
            (org.apache.maven.messages), you must specify this element
with this value : org/apache/maven/messages  -->
        <targetPath/>
        <!-- Describe the includes files to the project -->
        <includes>
          <!-- This element specifies an Ant pattern of files to include
in a list. -->
          <include>*.properties</include>
        </includes>
        <!-- Describe the excludes files to the project -->
        <excludes>
          <!-- This element specifies an Ant pattern of files to exclude
in a list. -->
          <exclude/>
        </excludes>
        <!-- Boolean. Describe if resources are filtered or not. -->
        <filtering/>
      </resource>
    </resources>
  </build>

  <!-- This element includes the specification of reports to be included
in a Maven-generated site. These reports will 
       be run when a user executes maven site. All of the reports will
be included in the navigation bar for browsing 
       in the order they are specified. -->
  <reports>
    <!-- The name of the report that should be run when the site is
generated. There is an established naming convention
         that is to be used when specifying reports. If you want the
report that is generated by a plugin called xyz, then 
         you would specify the following for the value of this element:
maven-xyz-plugin.-->
    <report/>
  </reports>
  
  <!-- Project properties that will be used by various plugins -->
  <properties/>
</project>
<================ END OF THE FILE
========================================================================
================>

Anyway, i have a pray for maven authors : please DOCUMENT WHAT YOU DO !
Some clients of mine rejected maven because of
the lack of real documentation (example : What is the list of variable
used by maven and its different plugins ? What is
The grammaticaly correct syntax for a jelly expression ?).

Sebastien

-----Message d'origine-----
De : Jean-Marc Lavoie [mailto:jmlavoie@trisotech.com] 
Envoyé : mercredi 17 mars 2004 16:47
À : Maven Users List
Objet : RE: More visual project descriptor documentation


The representation is great, it will be perfect with the proposed
enhancements.


My in first experience with maven projects, I had to create all the
folder structure, with some errors. Then I discoved the genapp plugin.
The plugin provides a sample POMS that provides a really great start. I
think the plugin should be introduced in the "getting started" section
to allow user not to start from scratch. This would remove lot of
questions like resouces in jars, jars creation, JUnits, what to include
in the file, and malformed project files as you start with a working
pom. Then the section you're working one would become an advance topic,
as people getting there would already have something working for most of
the cases, instead of getting there to create new pom sections. 




> -----Original Message-----
> From: Erik Husby [mailto:mhusby@broad.mit.edu]
> Sent: Wednesday, March 17, 2004 10:31 AM
> To: Maven Users List
> Subject: Re: More visual project descriptor documentation
> 
> 
> Definitely a step in the right direction. I too think that more
> indentation is required.
> 
> Also, visually indicating what elements are required and which are
> optional would be good. I am sure that this can get tricky but would 
> really help. Or perhaps we can gather a set of example POM's 
> along the 
> lines of:
> 
> 1. A basic POM that can compile, jar, and test a project.
> 2. A POM that can compile, jar, test, and install a jar into a local
> repository.
> 3. A POM that can compile, jar, test, install, and generate a site.
> 
> And I am sure that there are some others that would spring to mind.
> 
> --
> Erik Husby
> Team Lead for Software Quality Automation
> Genome Center at MIT
> Rm. 2192
> 320 Charles St
> Cambridge, MA 02141-2023
> mobile: 781.354.6669
> office: 617.258.9227
> mhusby@broad.mit.edu
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE : RE : More visual project descriptor documentation

Posted by Sébastien BRUNOT <sb...@octo.com>.
In fact, it is not documented at all.

Sebastien

-----Message d'origine-----
De : dion@multitask.com.au [mailto:dion@multitask.com.au] 
Envoyé : jeudi 18 mars 2004 01:06
À : Maven Users List
Objet : RE : More visual project descriptor documentation


There currently is a complete project.xml as part of the documentation.

See http://maven.apache.org/start/integrate.html

It's not terribly well documented though.
--
dIon Gillard, Multitask Consulting



Sébastien BRUNOT <sb...@octo.com> wrote on 18/03/2004 03:54:51 AM:

> Hi,
> 
> Another idea could be the release of a sample COMPLETE project.xml 
> documented. The documentation need to be completed first (for example 
> : what is the connection string for a subversion repository ?). Here 
> is my personal file for that (named project.xml.template) :
> 
> <================ BEGINING OF THE FILE 
> ======================================================================
> ==
> ===========>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <project>
> 
>   <!-- the version of maven's project object model -->
>   <pomVersion>3</pomVersion>
> 
>   <!-- a unique name for this project -->
>   <id>SampleJ2EE</id>
> 
>   <!-- a short but descriptive name for the project -->
>   <name>A Sample J2EE project to compare ant versus maven build 
> process</name>
> 
>   <!-- The version of the project under development, e.g.
       1.
> 1, 1.2, 2.0-SNAPSHOT -->
>   <currentVersion>1.0-SNAPSHOT</currentVersion>
> 
>   <!-- details about the organization that 'owns' the project -->
>   <organization>
>     <!-- The full name of the organization. -->
>     <name>Octo Technology</name>
>     <!-- The URL to the organization's home page. -->
>     <url>http://www.octo.com/</url>
>     <!-- The URL to the organization's logo image. This can be an
> URL
relative to the base directory of the generated
         web 
> site, (e.g., /images/org-logo.png) or an absolute URL
(e.g., http:
> //my.corp/logo.png). This value is used
         when generating the
> project documentation. -->
>     <logo>http://images/octo-logo.jpg</logo>
>   </organization>
> 
>   <!-- the year the project started -->
>   <inceptionYear>2003</inceptionYear>
> 
>   <!-- The Java package name of the project. This value is used when
> 
generating JavaDoc. -->
>   <package>com.octo.j2ee.sample</package>
> 
>   <!-- The URL to the project's logo image. This can be an URL
> relative
to the base directory of the generated web site,
      (e.
> g., /images/project-logo.png) or an absolute URL (e.g.,
http://my.
> corp/project-logo.png). This is used when
      generating the 
> project documentation.-->
>   <logo>/images/project-logo.jpg</logo>
> 
>   <!-- Optional. This is the Id of the Gump repository that this
> project
is part of (assuming it participates in the Gump 
 
> integration effort).-->
>   <gumpRepositoryId/>
> 
>   <!-- Optional. A detailed description of the project. This element 
> is
usually specified as CDATA to enable the use of HTML
       tags 
> within the description. This description is used to generate
the 
> front page of the project's web site.-->
>   <description>
>     This project is a sample J2EE project that is build with maven.
>     The following maven sub projects are used : TO BE CONTINUED
>   </description>
> 
>   <!-- a short description of what the project does -->
>   <shortDescription>
>     How to use maven for building a j2ee project.
>   </shortDescription>
> 
>   <!-- the url to the project home page -->
>   <url>http://localhost/samplej2ee</url>
> 
>   <!-- Optional. The URL to the project's issue tracking system. -->
>   <issueTrackingUrl/>
> 
>   <!-- Optional. The hostname of the web server that hosts the
> project's
web site. This is used when the web site is deployed. -->
>   <siteAddress>localhost</siteAddress>
> 
>   <!-- Optional. The directory on the web server where the public
> web
site for this project resides. This is used when the web site is
> 
deployed. -->
>   <siteDirectory>C:/Documents and Settings/sbrunot/Mes 
> documents/www/samplej2ee</siteDirectory>
> 
>   <!-- Optional. The server server where the final distributions
> will be
published. This is used when the distributions are deployed.
> 
       If this isn't defined, the central repository is used 
> instead as
determined by maven.repo.central and maven.repo.central.
> directory
   -->
>   <distributionDirectory/>
> 
>   <!-- Information relating to the source configuration management

> system used by this project. -->
>   <repository>
>     <!-- Optional. The source configuration management system URL
> that
describes the repository and how to connect to the repository. 
> 
         This is used by Maven when building versions from specific
> ID.
The format of this element is as follows:
scm:<provider>:
> <provider-parameters>
         For cvs, the format for pserver 
> repositories should be:
             scm:cvs:pserver:user@host:
> /cvs/root:module-name
         For local networked repositories (eg.
> pserver to local machine)

             scm:cvs:lserver:user@host:
> /cvs/root:module-name
         For ssh access: 
             scm:
> cvs:ext:user@host:/cvs/root:module-nameRemember that
CVS will expect
> an environment variable called CVS_RSH to be set,
typically to ssh
 
> or your ssh client.
         Some cvs clients support other 
> protocols, such as ntserver and
extssh. Here's an example using CVS 
> NT and ntserver:
         scm|cvs|ntserver|user@server|e:
> \cvs|DeploymentNote the use of
the vertical bar as delimiter as the 
> repository has a colon (:) in it.
         For local file system 
> repositories
             scm:cvs:local:ignored:/cvs/root:module-
> name
         The delimiter is determined by the character after 
> "scm". eg.
scm|cvs|pserver|user@host|/cvs/root|module-name is
> equivalent to that
listed above.
         This can be useful for 
> Windows users who have : in their
cvsroot parameter (eg. D:\cvsroot)
> 
         Where pserver is the protocol used to access CVS, 
> user@host is
the user name to log in to the specified cvs host, 
> /cvs/root is the cvs
root directory, 
         and module-name is 
> the name of the cvs module to be worked on
         As an example, 
> the settings for an Apache project are usually:
 
scm:cvs:pserver:
> anoncvs@cvs.apache.org:/home/cvspublic:module-name
 
> Currently CVS, Starteam and SubVersion are the only supported
scm's.
> Others will be added as soon as possible
    -->
>     <connection/>
>     <!-- Optional. Just like connection, but for developers, i.e.
> this
scm connection will not be read only. -->
>     <developerConnection/>
>     <!-- Optional. The URL to the project's browsable CVS repository
-->
>     <url/>
>   </repository>
> 
>   <!-- Optional. Contains information on previous versions of the

> project. This information is used when invoking the maven:dist target.
-->
>   <versions>
>     <!-- A unique identifier for a version. This ID is used to
> specify
the version that maven:dist builds. -->
>     <id/>
>     <!-- The external version number under which this release was

> distributed. Examples include: 1.0, 1.1-alpha1, 1.2-beta, 1.3.2 etc.
-->
>     <name/>
>     <!-- The name given in the version control system (e.g. cvs)
> used by
the project for the source code associated with this version
> of the
project.-->
>     <tag/>
>   </versions>
> 
>   <!-- Optional. Contains information on branches of the project.
> This
information is used when invoking the maven:dist target. Each 
> branch
       is described by a tag element-->
>   <branches>
>     <!-- The branch tag in the version control system (e.g. cvs)
> used by
the project for the source code associated with this branch 
> of the
project. -->
>     <tag/>
>   </branches>
> 
>   <!-- Contains information about a project's mailing lists. This is
> 
used to generate the front page of the site's web site. -->
>   <mailingLists>
>     <!-- Each mailing list is described by a mailingList element,
> which
is then described by additional elements (described below). 
 
> The auto-generated site documentation references this
information. -->
>     <mailingList>
>       <!-- The name of the mailing list. -->
>       <name/>
>       <!-- The email address or link that can be used to subscribe
> to
the mailing list. If this is an email address, a mailto: link 
> will
automatically
           be created when the documentation is created.-->
>       <subscribe/>
>       <!-- The email address or link that can be used to unsubscribe 
> to
the mailing list. If this is an email address, a mailto: link 
> will
automatically 
           be created when the documentation is 
> created.-->
>       <unsubscribe/>
>       <!-- The link to a URL that can browse the archive. -->
>       <archive/>
>     </mailingList>
>   </mailingLists>
> 
>   <!-- Describes the committers to a project. This is used to
> generate
the Project Team page of the project's web site. -->
>   <developers>
>     <!-- Each developer is described by a developer element, which
> is
then described by additional elements (described below). 
 
> The auto-generated site documentation references this
information.-->
>     <developer>
>       <!-- The full name of the developer. -->
>       <name>Sebastien Brunot</name>
>       <!-- The username of the developer. -->
>       <id>sbrunot</id>
>       <!-- The email address of the developer. -->
>       <email>sbrunot@octo.com</email>
>       <!-- The organization to which the developer belongs.-->
>       <organization>Octo Technology</organization>
>       <!-- The roles the developer plays in the project. Each role
> is
describe by a role element, the body of which is a role name. -->
>       <roles>
>         <role>developer</role>
>       </roles>
>       <!-- The URL for the homepage of the developer -->
>       <url/>
>       <!-- The timezone the developer is in. This is a number in the
> 
range -14 to 14. -->
>       <timezone>1</timezone>
>     </developer>
>   </developers>
> 
>   <!-- Describes the contributors to a project. This is used to
> generate
the Project Team page of the project's web site.
 
> Same as <developers> but with <contributor> tags -->
>   <contributors/>
> 
>   <!-- Describes the licenses for this project. This is used to
> generate
the License page of the project's web site.
 
> Typically the licenses listed for the project are that of the

> project itself, and not of dependencies.-->
>   <licences>
>     <!-- Each license is described by a license element, which is
> then
describe by additional elements (described below).
         The
> auto-generated site documentation references this
information. 
> Projects should only list the license(s) that
         applies to 
> the project and not the licenses that apply to
dependencies.-->
>     <licence>
>       <!-- The full legal name of the license. -->
>       <name/>
>       <!-- The official url for the license text. -->
>       <url/>
>       <!-- The primary method by which this project may be
> distributed. 
            repo : may be downloaded from the Maven 
> repository
            manual : user must manually download and 
> install the
dependency.-->
>       <distribution/>
>     </licence>
>   </licences>
> 
>   <!-- Describes the dependencies to a project. This is used to when
> 
building a project. -->
>   <dependencies>
>     <!-- Each dependency is described by a dependency element, which 
> is
then described by additional elements (described below).
 
> These dependencies are used to construct a classpath for your

> project during the build process.
         Maven can automatically 
> download these dependencies from a
remote repository. 
         The 
> filename that Maven downloads from the repository is
artifactId-
> version.jar where artifactId corresponds to the
         artifactId
> element and version corresponds to the version
element. 
 
> When Maven goes looking for a dependency in the remote
repository, 
> it uses the dependency element to construct the URL
         to 
> download from. This URL is defined as:
           ${repo}
> /${groupId}/${type}s/${artifactId}-${version}.${type}
         Where
> 
           repo is the remote repository URL specified by ${maven.
> repo.remote}
           groupId is taken from the dependency 
> element
           type is taken from the dependency element 
 
> artifactId is taken from the dependency element
           version 
> is taken from the dependency element
    -->
>     <dependency>
>       <!-- The project group that produced the dependency, e.g. jboss.
-->
>       <groupId/>
>       <!-- The unique id for an artifact produced by the project
> group,
e.g. jboss-boot -->
>       <artifactId/>
>       <!-- The version of the dependency., e.g. 3.2.1 -->
>       <version/>
>       <!-- The name of jar file if it doesn't respect
<artifactId>-
> <version>.jar pattern.-->
>       <jar/>
>       <!-- The type of dependency. This defaults to jar.
 
> Other known and recognised dependency types are: ejb and
plugin. -->
>       <type/>
>       <!-- The url of the dependency's homepage.
           This 
> url will be provided to the user if the jar file cannot
be 
> downloaded from the central repository. -->
>       <url/>
>       <!-- Properties about the dependency. Various plugins allow
> you to
mark dependencies with properties. For example 
 
> the war plugin looks for a war.bundle property, and if found
will 
> include the dependency in WEB-INF/lib.
           For example 
> syntax, check the war plugin docs. -->
>       <properties/>
>     </dependency>
>   </dependencies>
> 
>   <!-- build information for the project -->
>   <build>
>     <!-- An address to which notifications regarding the status of

> builds for this project can be sent.
         This is intended for 
> use by tools which do unattended builds,
for example those providing
> for
         continuous integration. Currently this is used by the

> maven:gump-descriptor target -->
> 
>
<nagEmailAddress>turbine-maven-dev@jakarta.apache.org</nagEmailAddress>
>     <!-- This element specifies a directory containing the source of
> the
project. The generated build system 
         will compile the 
> source in this directory when the project is
built. The path given 
> is relative to 
         the project descriptor. -->
>     <sourceDirectory>src/java</sourceDirectory>
>     <!-- This element specifies how source code will be excluded or

> included depending on the presence of a given
         class.-->
>     <sourceModification>
>       <!-- If the class with this name can not be loaded, then the

> includes and excludes specified below will be 
           applied to
> the contents of the sourceDirectory
           Note: not all plugins
> support the sourceModifications
element. -->
>       <className/>
>       <!-- Describe the files to be included if the class was not
found
-->
>       <includes>
>         <!-- This element specifies an Ant pattern of files to 
> include
in a list. -->
>         <include/>
>       </includes>
>       <!-- Describe the files to be excluded if the class was not
found
-->
>       <excludes>
>         <!-- This element specifies an Ant pattern of files to 
> exclude
from a list. -->
>         <exclude/>
>       </excludes>
>     </sourceModification>
>     <!-- This element specifies a directory containing the unit test
> 
source of the project.
         The generated build system will 
> compile these directories when
the project is being tested.
 
> The unit tests must use the JUnit test framework. The path
given is 
> relative to the project descriptor.-->
>     <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
>     <!-- This element specifies a directory containing Aspect 
> sources of
the project. The generated build system will 
 
> compile the Aspects in this directory when the project is built
if 
> Aspects have been enabled (see the Aspectj 
         goals 
> document). The path given is relative to the project
descriptor. -->
>     <aspectSourceDirectory/>
>     <!-- This element specifies unit tests associated with the
project.-->
>     <unitTest>
>       <!-- Describe the includes unit tests -->
>       <includes>
>         <!-- This element specifies an Ant pattern of files to 
> include
in a list. -->
>         <include>**/*Test.java</include>
>       </includes>
>       <!-- Describe the excludes unit tests -->
>       <excludes>
>         <!-- This element specifies an Ant pattern of files to 
> exclude
from a list. -->
>         <exclude>**/NaughtyTest.java</exclude>
>       </excludes>
>     </unitTest>
>     <!-- This element describes all of the resources associated with
> a
project or unit tests. Each resource is described
         by a 
> resource element, which is then described by additional
elements 
> (described below). These resources are 
         used to complete 
> the jar file or to run unit test. -->
>     <resources>
>       <!-- Each resource must be defined in a resource element. -->
>       <resource>
>         <!-- Describe the directory where the resource is stored. 
> The
path may be absolute, or relative to the project.xml file. -->
>         <directory>src/conf</directory>
>         <!-- Describe the resource target path. For example, if you 
> want
that resource appear into a specific package 
            (org.
> apache.maven.messages), you must specify this element
with this 
> value : org/apache/maven/messages  -->
>         <targetPath/>
>         <!-- Describe the includes files to the project -->
>         <includes>
>           <!-- This element specifies an Ant pattern of files to 
> include
in a list. -->
>           <include>*.properties</include>
>         </includes>
>         <!-- Describe the excludes files to the project -->
>         <excludes>
>           <!-- This element specifies an Ant pattern of files to 
> exclude
in a list. -->
>           <exclude/>
>         </excludes>
>         <!-- Boolean. Describe if resources are filtered or not. -->
>         <filtering/>
>       </resource>
>     </resources>
>   </build>
> 
>   <!-- This element includes the specification of reports to be 
> included
in a Maven-generated site. These reports will 
       be 
> run when a user executes maven site. All of the reports will
be 
> included in the navigation bar for browsing 
       in the order 
> they are specified. -->
>   <reports>
>     <!-- The name of the report that should be run when the site is

> generated. There is an established naming convention
         that 
> is to be used when specifying reports. If you want the
report that 
> is generated by a plugin called xyz, then 
         you would 
> specify the following for the value of this element:
maven-xyz-plugin.-->
>     <report/>
>   </reports>
> 
>   <!-- Project properties that will be used by various plugins -->
>   <properties/>
> </project>
> <================ END OF THE FILE
>
========================================================================
> ================>
> 
> Anyway, i have a pray for maven authors : please DOCUMENT WHAT YOU DO
!
> Some clients of mine rejected maven because of
> the lack of real documentation (example : What is the list of variable
> used by maven and its different plugins ? What is
> The grammaticaly correct syntax for a jelly expression ?).
> 
> Sebastien
> 
> -----Message d'origine-----
> De : Jean-Marc Lavoie [mailto:jmlavoie@trisotech.com] 
> Envoyé : mercredi 17 mars 2004 16:47
> À : Maven Users List
> Objet : RE: More visual project descriptor documentation
> 
> 
> The representation is great, it will be perfect with the proposed
> enhancements.
> 
> 
> My in first experience with maven projects, I had to create all the
> folder structure, with some errors. Then I discoved the genapp plugin.
> The plugin provides a sample POMS that provides a really great start.
I
> think the plugin should be introduced in the "getting started" section
> to allow user not to start from scratch. This would remove lot of
> questions like resouces in jars, jars creation, JUnits, what to
include
> in the file, and malformed project files as you start with a working
> pom. Then the section you're working one would become an advance
topic,
> as people getting there would already have something working for most
of
> the cases, instead of getting there to create new pom sections. 
> 
> 
> 
> 
> > -----Original Message-----
> > From: Erik Husby [mailto:mhusby@broad.mit.edu]
> > Sent: Wednesday, March 17, 2004 10:31 AM
> > To: Maven Users List
> > Subject: Re: More visual project descriptor documentation
> > 
> > 
> > Definitely a step in the right direction. I too think that more
> > indentation is required.
> > 
> > Also, visually indicating what elements are required and which are
> > optional would be good. I am sure that this can get tricky but would

> > really help. Or perhaps we can gather a set of example POM's 
> > along the 
> > lines of:
> > 
> > 1. A basic POM that can compile, jar, and test a project.
> > 2. A POM that can compile, jar, test, and install a jar into a local
> > repository.
> > 3. A POM that can compile, jar, test, install, and generate a site.
> > 
> > And I am sure that there are some others that would spring to mind.
> > 
> > --
> > Erik Husby
> > Team Lead for Software Quality Automation
> > Genome Center at MIT
> > Rm. 2192
> > 320 Charles St
> > Cambridge, MA 02141-2023
> > mobile: 781.354.6669
> > office: 617.258.9227
> > mhusby@broad.mit.edu
> > 
> > 
> > 
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
> 
> 
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE : More visual project descriptor documentation

Posted by di...@multitask.com.au.
There currently is a complete project.xml as part of the documentation.

See http://maven.apache.org/start/integrate.html

It's not terribly well documented though.
--
dIon Gillard, Multitask Consulting



Sébastien BRUNOT <sb...@octo.com> wrote on 18/03/2004 03:54:51 AM:

> Hi,
> 
> Another idea could be the release of a sample COMPLETE project.xml
> documented. The documentation need to be completed first (for example :
> what is the connection string for a subversion repository ?). Here is my
> personal file for that (named project.xml.template) :
> 
> <================ BEGINING OF THE FILE
> ========================================================================
> ===========>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <project>
> 
>   <!-- the version of maven's project object model -->
>   <pomVersion>3</pomVersion>
> 
>   <!-- a unique name for this project -->
>   <id>SampleJ2EE</id>
> 
>   <!-- a short but descriptive name for the project -->
>   <name>A Sample J2EE project to compare ant versus maven build
> process</name>
> 
>   <!-- The version of the project under development, e.g.
       1.
> 1, 1.2, 2.0-SNAPSHOT -->
>   <currentVersion>1.0-SNAPSHOT</currentVersion>
> 
>   <!-- details about the organization that 'owns' the project -->
>   <organization>
>     <!-- The full name of the organization. -->
>     <name>Octo Technology</name>
>     <!-- The URL to the organization's home page. -->
>     <url>http://www.octo.com/</url>
>     <!-- The URL to the organization's logo image. This can be an 
> URL
relative to the base directory of the generated
         web 
> site, (e.g., /images/org-logo.png) or an absolute URL
(e.g., http:
> //my.corp/logo.png). This value is used
         when generating the
> project documentation. -->
>     <logo>http://images/octo-logo.jpg</logo>
>   </organization>
> 
>   <!-- the year the project started -->
>   <inceptionYear>2003</inceptionYear>
> 
>   <!-- The Java package name of the project. This value is used when
> 
generating JavaDoc. -->
>   <package>com.octo.j2ee.sample</package>
> 
>   <!-- The URL to the project's logo image. This can be an URL 
> relative
to the base directory of the generated web site,
      (e.
> g., /images/project-logo.png) or an absolute URL (e.g.,
http://my.
> corp/project-logo.png). This is used when 
      generating the 
> project documentation.-->
>   <logo>/images/project-logo.jpg</logo>
> 
>   <!-- Optional. This is the Id of the Gump repository that this 
> project
is part of (assuming it participates in the Gump 
 
> integration effort).-->
>   <gumpRepositoryId/>
> 
>   <!-- Optional. A detailed description of the project. This element
> is
usually specified as CDATA to enable the use of HTML
       tags 
> within the description. This description is used to generate
the 
> front page of the project's web site.-->
>   <description>
>     This project is a sample J2EE project that is build with maven.
>     The following maven sub projects are used : TO BE CONTINUED
>   </description>
> 
>   <!-- a short description of what the project does -->
>   <shortDescription>
>     How to use maven for building a j2ee project.
>   </shortDescription>
> 
>   <!-- the url to the project home page -->
>   <url>http://localhost/samplej2ee</url>
> 
>   <!-- Optional. The URL to the project's issue tracking system. -->
>   <issueTrackingUrl/>
> 
>   <!-- Optional. The hostname of the web server that hosts the 
> project's
web site. This is used when the web site is deployed. -->
>   <siteAddress>localhost</siteAddress>
> 
>   <!-- Optional. The directory on the web server where the public 
> web
site for this project resides. This is used when the web site is
> 
deployed. -->
>   <siteDirectory>C:/Documents and Settings/sbrunot/Mes
> documents/www/samplej2ee</siteDirectory>
> 
>   <!-- Optional. The server server where the final distributions 
> will be
published. This is used when the distributions are deployed.
> 
       If this isn't defined, the central repository is used 
> instead as
determined by maven.repo.central and maven.repo.central.
> directory
   -->
>   <distributionDirectory/>
> 
>   <!-- Information relating to the source configuration management

> system used by this project. -->
>   <repository>
>     <!-- Optional. The source configuration management system URL 
> that
describes the repository and how to connect to the repository. 
> 
         This is used by Maven when building versions from specific
> ID.
The format of this element is as follows:
scm:<provider>:
> <provider-parameters>
         For cvs, the format for pserver 
> repositories should be: 
             scm:cvs:pserver:user@host:
> /cvs/root:module-name
         For local networked repositories (eg.
> pserver to local machine)

             scm:cvs:lserver:user@host:
> /cvs/root:module-name
         For ssh access: 
             scm:
> cvs:ext:user@host:/cvs/root:module-nameRemember that
CVS will expect
> an environment variable called CVS_RSH to be set,
typically to ssh
 
> or your ssh client. 
         Some cvs clients support other 
> protocols, such as ntserver and
extssh. Here's an example using CVS 
> NT and ntserver: 
         scm|cvs|ntserver|user@server|e:
> \cvs|DeploymentNote the use of
the vertical bar as delimiter as the 
> repository has a colon (:) in it. 
         For local file system 
> repositories 
             scm:cvs:local:ignored:/cvs/root:module-
> name
         The delimiter is determined by the character after 
> "scm". eg.
scm|cvs|pserver|user@host|/cvs/root|module-name is 
> equivalent to that
listed above.
         This can be useful for 
> Windows users who have : in their
cvsroot parameter (eg. D:\cvsroot)
> 
         Where pserver is the protocol used to access CVS, 
> user@host is
the user name to log in to the specified cvs host, 
> /cvs/root is the cvs
root directory, 
         and module-name is 
> the name of the cvs module to be worked on 
         As an example, 
> the settings for an Apache project are usually: 
 
scm:cvs:pserver:
> anoncvs@cvs.apache.org:/home/cvspublic:module-name
 
> Currently CVS, Starteam and SubVersion are the only supported
scm's.
> Others will be added as soon as possible 
    -->
>     <connection/>
>     <!-- Optional. Just like connection, but for developers, i.e. 
> this
scm connection will not be read only. -->
>     <developerConnection/>
>     <!-- Optional. The URL to the project's browsable CVS repository -->
>     <url/>
>   </repository>
> 
>   <!-- Optional. Contains information on previous versions of the

> project. This information is used when invoking the maven:dist target.
-->
>   <versions>
>     <!-- A unique identifier for a version. This ID is used to 
> specify
the version that maven:dist builds. -->
>     <id/>
>     <!-- The external version number under which this release was

> distributed. Examples include: 1.0, 1.1-alpha1, 1.2-beta, 1.3.2 etc. -->
>     <name/>
>     <!-- The name given in the version control system (e.g. cvs) 
> used by
the project for the source code associated with this version
> of the
project.-->
>     <tag/>
>   </versions>
> 
>   <!-- Optional. Contains information on branches of the project. 
> This
information is used when invoking the maven:dist target. Each 
> branch
       is described by a tag element-->
>   <branches>
>     <!-- The branch tag in the version control system (e.g. cvs) 
> used by
the project for the source code associated with this branch 
> of the
project. -->
>     <tag/>
>   </branches>
> 
>   <!-- Contains information about a project's mailing lists. This is
> 
used to generate the front page of the site's web site. -->
>   <mailingLists>
>     <!-- Each mailing list is described by a mailingList element, 
> which
is then described by additional elements (described below). 
 
> The auto-generated site documentation references this
information. -->
>     <mailingList>
>       <!-- The name of the mailing list. -->
>       <name/>
>       <!-- The email address or link that can be used to subscribe 
> to
the mailing list. If this is an email address, a mailto: link 
> will
automatically
           be created when the documentation is created.-->
>       <subscribe/>
>       <!-- The email address or link that can be used to unsubscribe
> to
the mailing list. If this is an email address, a mailto: link 
> will
automatically 
           be created when the documentation is 
> created.-->
>       <unsubscribe/>
>       <!-- The link to a URL that can browse the archive. -->
>       <archive/>
>     </mailingList>
>   </mailingLists>
> 
>   <!-- Describes the committers to a project. This is used to 
> generate
the Project Team page of the project's web site. -->
>   <developers>
>     <!-- Each developer is described by a developer element, which 
> is
then described by additional elements (described below). 
 
> The auto-generated site documentation references this
information.-->
>     <developer>
>       <!-- The full name of the developer. -->
>       <name>Sebastien Brunot</name>
>       <!-- The username of the developer. -->
>       <id>sbrunot</id>
>       <!-- The email address of the developer. -->
>       <email>sbrunot@octo.com</email>
>       <!-- The organization to which the developer belongs.-->
>       <organization>Octo Technology</organization>
>       <!-- The roles the developer plays in the project. Each role 
> is
describe by a role element, the body of which is a role name. -->
>       <roles>
>         <role>developer</role>
>       </roles>
>       <!-- The URL for the homepage of the developer -->
>       <url/>
>       <!-- The timezone the developer is in. This is a number in the
> 
range -14 to 14. -->
>       <timezone>1</timezone>
>     </developer>
>   </developers>
> 
>   <!-- Describes the contributors to a project. This is used to 
> generate
the Project Team page of the project's web site.
 
> Same as <developers> but with <contributor> tags -->
>   <contributors/>
> 
>   <!-- Describes the licenses for this project. This is used to 
> generate
the License page of the project's web site.
 
> Typically the licenses listed for the project are that of the

> project itself, and not of dependencies.-->
>   <licences>
>     <!-- Each license is described by a license element, which is 
> then
describe by additional elements (described below).
         The
> auto-generated site documentation references this
information. 
> Projects should only list the license(s) that
         applies to 
> the project and not the licenses that apply to
dependencies.-->
>     <licence>
>       <!-- The full legal name of the license. -->
>       <name/>
>       <!-- The official url for the license text. -->
>       <url/>
>       <!-- The primary method by which this project may be 
> distributed. 
            repo : may be downloaded from the Maven 
> repository 
            manual : user must manually download and 
> install the
dependency.-->
>       <distribution/>
>     </licence>
>   </licences>
> 
>   <!-- Describes the dependencies to a project. This is used to when
> 
building a project. -->
>   <dependencies>
>     <!-- Each dependency is described by a dependency element, which
> is
then described by additional elements (described below).
 
> These dependencies are used to construct a classpath for your

> project during the build process. 
         Maven can automatically 
> download these dependencies from a
remote repository. 
         The 
> filename that Maven downloads from the repository is
artifactId-
> version.jar where artifactId corresponds to the 
         artifactId
> element and version corresponds to the version
element. 
 
> When Maven goes looking for a dependency in the remote
repository, 
> it uses the dependency element to construct the URL 
         to 
> download from. This URL is defined as: 
           ${repo}
> /${groupId}/${type}s/${artifactId}-${version}.${type}
         Where
> 
           repo is the remote repository URL specified by
${maven.
> repo.remote} 
           groupId is taken from the dependency 
> element 
           type is taken from the dependency element 
 
> artifactId is taken from the dependency element 
           version 
> is taken from the dependency element 
    -->
>     <dependency>
>       <!-- The project group that produced the dependency, e.g. jboss.
-->
>       <groupId/>
>       <!-- The unique id for an artifact produced by the project 
> group,
e.g. jboss-boot -->
>       <artifactId/>
>       <!-- The version of the dependency., e.g. 3.2.1 -->
>       <version/>
>       <!-- The name of jar file if it doesn't respect
<artifactId>-
> <version>.jar pattern.-->
>       <jar/>
>       <!-- The type of dependency. This defaults to jar. 
 
> Other known and recognised dependency types are: ejb and
plugin. -->
>       <type/>
>       <!-- The url of the dependency's homepage. 
           This 
> url will be provided to the user if the jar file cannot
be 
> downloaded from the central repository. -->
>       <url/>
>       <!-- Properties about the dependency. Various plugins allow 
> you to
mark dependencies with properties. For example 
 
> the war plugin looks for a war.bundle property, and if found
will 
> include the dependency in WEB-INF/lib. 
           For example 
> syntax, check the war plugin docs. -->
>       <properties/>
>     </dependency>
>   </dependencies>
> 
>   <!-- build information for the project -->
>   <build>
>     <!-- An address to which notifications regarding the status of

> builds for this project can be sent.
         This is intended for 
> use by tools which do unattended builds,
for example those providing
> for 
         continuous integration. Currently this is used by the

> maven:gump-descriptor target -->
> 
> <nagEmailAddress>turbine-maven-dev@jakarta.apache.org</nagEmailAddress>
>     <!-- This element specifies a directory containing the source of
> the
project. The generated build system 
         will compile the 
> source in this directory when the project is
built. The path given 
> is relative to 
         the project descriptor. -->
>     <sourceDirectory>src/java</sourceDirectory>
>     <!-- This element specifies how source code will be excluded or

> included depending on the presence of a given
         class.-->
>     <sourceModification>
>       <!-- If the class with this name can not be loaded, then the

> includes and excludes specified below will be 
           applied to
> the contents of the sourceDirectory
           Note: not all plugins
> support the sourceModifications
element. -->
>       <className/>
>       <!-- Describe the files to be included if the class was not found
-->
>       <includes>
>         <!-- This element specifies an Ant pattern of files to 
> include
in a list. -->
>         <include/>
>       </includes>
>       <!-- Describe the files to be excluded if the class was not found
-->
>       <excludes>
>         <!-- This element specifies an Ant pattern of files to 
> exclude
from a list. -->
>         <exclude/>
>       </excludes>
>     </sourceModification>
>     <!-- This element specifies a directory containing the unit test
> 
source of the project.
         The generated build system will 
> compile these directories when
the project is being tested.
 
> The unit tests must use the JUnit test framework. The path
given is 
> relative to the project descriptor.-->
>     <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
>     <!-- This element specifies a directory containing Aspect 
> sources of
the project. The generated build system will 
 
> compile the Aspects in this directory when the project is built
if 
> Aspects have been enabled (see the Aspectj 
         goals 
> document). The path given is relative to the project
descriptor. -->
>     <aspectSourceDirectory/>
>     <!-- This element specifies unit tests associated with the
project.-->
>     <unitTest>
>       <!-- Describe the includes unit tests -->
>       <includes>
>         <!-- This element specifies an Ant pattern of files to 
> include
in a list. -->
>         <include>**/*Test.java</include>
>       </includes>
>       <!-- Describe the excludes unit tests -->
>       <excludes>
>         <!-- This element specifies an Ant pattern of files to 
> exclude
from a list. -->
>         <exclude>**/NaughtyTest.java</exclude>
>       </excludes>
>     </unitTest>
>     <!-- This element describes all of the resources associated with
> a
project or unit tests. Each resource is described
         by a 
> resource element, which is then described by additional
elements 
> (described below). These resources are 
         used to complete 
> the jar file or to run unit test. -->
>     <resources>
>       <!-- Each resource must be defined in a resource element. -->
>       <resource>
>         <!-- Describe the directory where the resource is stored. 
> The
path may be absolute, or relative to the project.xml file. -->
>         <directory>src/conf</directory>
>         <!-- Describe the resource target path. For example, if you 
> want
that resource appear into a specific package 
            (org.
> apache.maven.messages), you must specify this element
with this 
> value : org/apache/maven/messages  -->
>         <targetPath/>
>         <!-- Describe the includes files to the project -->
>         <includes>
>           <!-- This element specifies an Ant pattern of files to 
> include
in a list. -->
>           <include>*.properties</include>
>         </includes>
>         <!-- Describe the excludes files to the project -->
>         <excludes>
>           <!-- This element specifies an Ant pattern of files to 
> exclude
in a list. -->
>           <exclude/>
>         </excludes>
>         <!-- Boolean. Describe if resources are filtered or not. -->
>         <filtering/>
>       </resource>
>     </resources>
>   </build>
> 
>   <!-- This element includes the specification of reports to be 
> included
in a Maven-generated site. These reports will 
       be 
> run when a user executes maven site. All of the reports will
be 
> included in the navigation bar for browsing 
       in the order 
> they are specified. -->
>   <reports>
>     <!-- The name of the report that should be run when the site is

> generated. There is an established naming convention
         that 
> is to be used when specifying reports. If you want the
report that 
> is generated by a plugin called xyz, then 
         you would 
> specify the following for the value of this element:
maven-xyz-plugin.-->
>     <report/>
>   </reports>
> 
>   <!-- Project properties that will be used by various plugins -->
>   <properties/>
> </project>
> <================ END OF THE FILE
> ========================================================================
> ================>
> 
> Anyway, i have a pray for maven authors : please DOCUMENT WHAT YOU DO !
> Some clients of mine rejected maven because of
> the lack of real documentation (example : What is the list of variable
> used by maven and its different plugins ? What is
> The grammaticaly correct syntax for a jelly expression ?).
> 
> Sebastien
> 
> -----Message d'origine-----
> De : Jean-Marc Lavoie [mailto:jmlavoie@trisotech.com] 
> Envoyé : mercredi 17 mars 2004 16:47
> À : Maven Users List
> Objet : RE: More visual project descriptor documentation
> 
> 
> The representation is great, it will be perfect with the proposed
> enhancements.
> 
> 
> My in first experience with maven projects, I had to create all the
> folder structure, with some errors. Then I discoved the genapp plugin.
> The plugin provides a sample POMS that provides a really great start. I
> think the plugin should be introduced in the "getting started" section
> to allow user not to start from scratch. This would remove lot of
> questions like resouces in jars, jars creation, JUnits, what to include
> in the file, and malformed project files as you start with a working
> pom. Then the section you're working one would become an advance topic,
> as people getting there would already have something working for most of
> the cases, instead of getting there to create new pom sections. 
> 
> 
> 
> 
> > -----Original Message-----
> > From: Erik Husby [mailto:mhusby@broad.mit.edu]
> > Sent: Wednesday, March 17, 2004 10:31 AM
> > To: Maven Users List
> > Subject: Re: More visual project descriptor documentation
> > 
> > 
> > Definitely a step in the right direction. I too think that more
> > indentation is required.
> > 
> > Also, visually indicating what elements are required and which are
> > optional would be good. I am sure that this can get tricky but would 
> > really help. Or perhaps we can gather a set of example POM's 
> > along the 
> > lines of:
> > 
> > 1. A basic POM that can compile, jar, and test a project.
> > 2. A POM that can compile, jar, test, and install a jar into a local
> > repository.
> > 3. A POM that can compile, jar, test, install, and generate a site.
> > 
> > And I am sure that there are some others that would spring to mind.
> > 
> > --
> > Erik Husby
> > Team Lead for Software Quality Automation
> > Genome Center at MIT
> > Rm. 2192
> > 320 Charles St
> > Cambridge, MA 02141-2023
> > mobile: 781.354.6669
> > office: 617.258.9227
> > mhusby@broad.mit.edu
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
> 
> 
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.614 / Virus Database: 393 - Release Date: 05/03/2004
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>