Documentation Required

This page lists some of the most pressing documentation needs. If you feel something is missing, please be sure to let us know at the Maven Users Mailing List.

Documentation for users

  • new SNAPSHOT handling - partially done on Brett's blog
  • guide to dependencies, including:
    • dependency scoping - especially system scope
    • version range specifications
    • conflict resolution
  • deployment mechanism
  • dependency management
  • plugin management - in progress by J Matthew Pryor and John Casey
  • plugin configuration
  • plugin downloading - partial on Brett's blogs
  • report generation
  • project inheritence and company wide strategy
  • plugin documentation
  • using POM-properties in conjunction with plugin configuration to abstract child-POM configs
  • archetypes - writing and using
  • plugin usage guide/summary for core plugins - esp. release plugin
  • strategy for migrating from Ant builds
  • strategy for migrating from Maven 1.x builds - esp. plugins that don't convert directly

Documentation for plugin authors

  • Beanshell examples
  • plugin writing guide
  • report writing guide
  • site customisation guide
  • common tips and tricks for accessing project/build data
  • guide to available parameter expressions
  • list of standards for submitting new plugins (minimum documentation, test coverage?)

Documentation for Maven developers

  • Lifecycle architecture
  • High level architecture, components explanation
  • Intro to Plexus
  • contributors guide (add to current and consolidate, walk through some first steps)

Additional Notes

        Brett Porter wrote:
        > The active project changes during the reactor build. At the compile
        > stage, it refers to the target/classes directory. At the package
        > stage, it points to the jar file. If you are implementing your own
        > packaging goal, you need to call project.getArtifact().setFile( ... )
        > to ensure this is used.

        - multi module howto
        - per user scm setup
          - outline behaviour when connection and developConnection are defined

           Our current URL looks like:
           scm:cvs:pserver:@cvs.host.name:/cvsroot:module-version

           Using this URL, the default is to connect to the CVS server using the
           same userid as the current user.  This is the desired behavior and I
           don't want to mess that up.  I just would like a means to add a userid
           in the URL only in special circumstances like Continuum.

           We might want to do something where we say it is a best practice to
           specify a ${user} and take it from the environment and allow an override.

        - testing a plugin
        - How to get started behind an NTLM proxy.
        - How snapshots works
        - How do i use the lifecycle provided by a plugin:
        - How do i disable ibiblio
        - using version ranges
        - plugin expressions (look at bob allison's work)
        - overriding the central repository (use central)
        - description of what packagings are available and how they work
        - creating upload bundles
        - modello example
        - changing the snapshot policy frequency
        - overriding central repo
        - using POM info in applications: the POM is packaged so there is acccess
          continuum example to get the version.
        - quick description of scm,wagon,continuum
      

Profiles Example

it's possible to do it with m2 beta-1 and profiles.

you declare profile in your pom like this:

   <profiles>
     <profile>
       <id>env-test</id>
       <activation>
         <property>
           <name>env</name>
           <value>test</value>
         </property>
       </activation>
       <properties>
         <appProperties>test.properties</appProperties>
       </properties>
     </profile>
     <profile>
       <id>env-production</id>
       <activation>
         <property>
           <name>env</name>
           <value>production</value>
         </property>
       </activation>
       <properties>
         <appProperties>app.properties</appProperties>
       </properties>
     </profile>
   </profiles>

and you can run mvn with one of profiles like:
mvn -P env-production clean:clean install ==> we use the profile id
or
mvn -Denv=test clean:clean install ==> we use the property env define in
<activation>

Emmanuel

martin.kuhn@merkur.at wrote:
> Hi,
>
> I'm a maven newbie and I try out maven 2.0 alpha 3.
>
> My questions:
>
> I have a project to build / deploy for three different enviroments (test,
> integration, production).
>
> The difference beetween the bundles is only a properties file (there are
> three different files: config-test.properties,
> config-integration.properties ...).
> In the build process I want to copy the right config file to a file with a
> common name (config.properties -> the app should work with this config
> file)
>
> Is there a solution to handle this with maven 2 or do I have to write a
> plugin?
>