[ http://jira.codehaus.org/browse/MNG-3646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brett Porter updated MNG-3646: ------------------------------ Fix Version/s: 2.0.x please review if this use case works for you in 2.0.10 as the order of interpolation and alignment has been corrected in some cases. > project's output directory cannot be set to absolute path > --------------------------------------------------------- > > Key: MNG-3646 > URL: http://jira.codehaus.org/browse/MNG-3646 > Project: Maven 2 > Issue Type: Bug > Affects Versions: 2.0.8 > Reporter: Ittay Dror > Fix For: 2.0.x > > > I want to be able to set the output (target) directory to some absolute path > outside of the source tree. What I'm trying to do is set <build><directory> > to ${output}/${project.artifactId}/${project.groupId}, where 'output' is > passed from the command line. > Looking at the 2.0.8 code, this is what happens: > * DefaultMavenProjectBuilder.buildInternal calls > pathTranslator.alignToBaseDirectory( project.getModel(), > projectDescriptor.getParentFile() ); > * DefaultPathTranslagor.alignToBaseDirectory calles build.setDirectory, > build.setSourceDirectory and build.setTestSourceDirectory all with calling > the method alignToBaseDirectory(String, File) where the string is the current > value of the above and File is the base directory > * alignToBaseDirectory(String, File) calls requiresBaseDirectoryAlignment > with the string > * requiresBaseDirectoryAlignment constructs a File on top of the string and > then calls File.isAbsolute to find if the path is absolute > * since a path in the form of "${something}" is not considered by File to be > absolute, alignToBaseDirectory adds basedir to the path. > So the final result is that passing -Doutput=/tmp results in the output > directory being set to something like > /home/ittayd/dev/tmp/com.company/artifact which is not what I intended. > I can go around this in linux by using > '/${output}/${project.artifactId}/${project.groupId}', but this won't work in > windows (for two reasons: 1. '/' is not interpreted as a path separator (in > Win32FileSystem) and 2. even if it did, it will not allow setting output to > 'D:\TEMP') -- 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