[ 
https://jira.codehaus.org/browse/MASSEMBLY-365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=334337#comment-334337
 ] 

Brian Brooks commented on MASSEMBLY-365:
----------------------------------------

I just lost an hour of time due to this defect.  The ${basedir} workaround 
worked for me.
                
> Filtered directory filesets try to include files from ancestor projects in a 
> multi-module build
> -----------------------------------------------------------------------------------------------
>
>                 Key: MASSEMBLY-365
>                 URL: https://jira.codehaus.org/browse/MASSEMBLY-365
>             Project: Maven Assembly Plugin
>          Issue Type: Bug
>          Components: filtering
>    Affects Versions: 2.2-beta-2
>         Environment: Mac OS X 10.5.5, Java 1.5.0_16, Maven 2.0.9
>            Reporter: Christopher Maier
>            Priority: Minor
>         Attachments: assembly-bug.tar.bz
>
>
> When interpreting assembly descriptors, it looks like Maven is resolving 
> fileSet directories relative to where the build was started, rather than 
> relative to the project or module the descriptor is defined in.  This might 
> cause problems in multi-module builds where a file exists in the same 
> directory listed in the descriptor, but in an ancestor module.  The attached 
> file has a small project that illustrates this.  This project has one 
> sub-module, in which an assembly descriptor is defined.  It declares a 
> {{fileSet}}, using the {{directory}} tag, that points to {{src/main/shell}}.  
> There is a shell file here ({{b.sh}}) that is to be included in the assembly. 
>  There is a also a {{src/main/shell}} directory in the parent project as 
> well, containing a file ({{a.sh}}) that does not exist in the shell directory 
> of the sub-module.  The assembly plugin is attached to the package phase.  
> When the sub-module is built from its own directory, everything works as 
> expected.  However, if it is built from the parent directory as part of a 
> reactor build, Maven complains that it cannot find {{a.sh}} in the 
> sub-module's {{src/main/shell directory}}.
> This looks like it only happens if the assembly specifies that the 
> {{fileSet}} be filtered.
> There is an easy workaround; instead of setting the directory as 
> {{src/main/shell}}, use {{${basedir}/src/main/shell}} in the assembly 
> descriptor.  I discovered this behavior when I was transitioning one of my 
> projects from a single project to a multi-module project, and I left some 
> files behind in the new parent project.  I'm going to get rid of those 
> eventually, and I realize this is probably a pathological structure, but this 
> behavior is unexpected and may impact other, less pathological projects.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to