Support <includes> and <excludes> for the source and testSource directories.
----------------------------------------------------------------------------

         Key: MNG-643
         URL: http://jira.codehaus.org/browse/MNG-643
     Project: Maven 2
        Type: Improvement
  Components: maven-model  
    Versions: 2.0-alpha-3    
 Environment: jdk 1.4.x, gentoo linux
 Reporter: Corridor Software Developer
    Priority: Blocker


m2 currently supports FileSets in <resources> and <testResources> which allow 
for the inclusion and exclusion of files based on a pattern.

Users may benefit from having this functionality in the source and testSource 
directory definitions as well. Here are some scenarios:

1) a volative package of java files may be excluded from a build to permit 
developers to continue building the other source files without having to delete 
or resolve issues for the problem files.
2) Source files and test source files may be kept in the same source tree in 
the same manner that resources and testResources may currently be kept in a 
single directory.
3) The change will allow for a parent pom.xml which applies a custom plugin 
against all source files for subprojects (modules) and subprojects which only 
compile subsets of these files to all point at the same directory.
4) Some development environments keep their source files in a single directory 
regardless of the deployment breakout. One reason is it isn't always obvious 
which artifact a particular source file is located in and consolidation 
eliminates the need to look around.
5) Elegant way of continuing to maintain Maven's one project one source set 
mantra in a multi-project environment without increasing the number of source 
directories.

In an effort to avoid breaking the existing pom format, the following tags 
would be supported:

     <sourceDirectory>../../src/java</sourceDirectory>
xor 
     <source>
         <directory>../../src/java</directory>
         <includes>
           <include>**/package/*.java</include>
         </includes>
         <excludes>
           <exclude>**/*Test.java</exclude>
         </excludes>
     </source>

and 

     <testSourceDirectory>../../src/java</testSourceDirectory>
xor 
     <testSource>
         <directory>../../src/java</directory>
         <includes>
           <include>**/*Test.java</include>
         </includes>
     </testSource>

This issue is NOT endorsing the support of multiple source directories. It 
would simply be possible to exclude some source files from the single 
directory. 

The change creates a path for deprecating the existing format later if desired.

The change would not break existing pom.xml files.

If a patch is not included with this issue, expect one soon. This f(x) is a 
blocker for our development environment because we have several critical tools 
which traverse all source files in a company project, not just a single 
artifact's files. So either support for multiple source directories by a parent 
project (ugh!) or filters on a single directory is a must have. I am currently 
working on the patch.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to