Hello, I did not hear from anyone regarding this so assumed no one has seen it. I went ahead and opened a bug for it a couple of days ago:
http://jira.codehaus.org/browse/MNG-4083 It occurred to me that I should post this to the list in case someone searches and sees this problem, they will know what happened with it. Sorry for the noise. -Jim -----Original Message----- From: Jim McCaskey [mailto:[email protected]] Sent: Tuesday, March 10, 2009 12:53 PM To: '[email protected]' Subject: project.build.directory not set properly for ant Hello, We are currently using Maven 2.0.7 and I am working on upgrading us to Maven 2.0.10. I ran into a problem which I think is in maven-antrun-plugin, but can't be sure. I do not think it is interpreting ${project.build.directory} properly. In a lot of our POM's we override the output directories to shovel stuff out of the source directory. I stripped down a pom to show the problem below. Where I have the ant echo's below, we would typically do "other things", but those things are breaking because the ${project.build.directory} is incorrectly set. As you can see from my test output below, 2.0.7 and 2.0.8 work fine, but starting with 2.0.9 and carried over to 2.0.10 things don't work so well. It looks like it is prepending ${basedir} even though we don't want that. I should also note that the output is going where I expect. In other words all the .class and .jar files are being pushed out to the E:\obj directory as my pom specifies. It's just within ant that the values don't seem correct. I tried searching Jira for any problems like this, and found some that are around this area. This one for example seems to have some similarity, but not exactly (and it's resolution seems to be in the Maven 2.1 code): http://jira.codehaus.org/browse/MNG-3475 A work around is obviously just to hand roll the paths we need, but I wanted to see if this change in behavior was intentional. Am I doing something wrong or should I just open a bug for this? -Jim Test POM: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>test</artifactId> <packaging>jar</packaging> <version>1.0.0</version> <name>Foo</name> <properties> <djobj>E:\obj</djobj> </properties> <build> <defaultGoal>package</defaultGoal> <outputDirectory>${djobj}/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>${djobj}/${project.artifactId}/test-classes</testOutputDirectory> <directory>${djobj}/${project.artifactId}</directory> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>package</phase> <configuration> <tasks> <echo message="Debug data"/> <echo message="basedir = ${basedir}"/> <echo message="djobj = ${djobj}"/> <echo message="project.build.sourceDirectory = ${project.build.sourceDirectory}"/> <echo message="project.build.scriptSourceDirectory = ${project.build.scriptSourceDirectory}"/> <echo message="project.build.testSourceDirectory = ${project.build.testSourceDirectory}"/> <echo message="project.build.outputDirectory = ${project.build.outputDirectory}"/> <echo message="project.build.testOutputDirectory = ${project.build.testOutputDirectory}"/> <echo message="project.build.directory = ${project.build.directory}"/> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> Test output: Maven 2.0.7 [INFO] [antrun:run {execution: default}] [INFO] Executing tasks [echo] Debug data [echo] basedir = E:\foo [echo] djobj = E:\obj [echo] project.build.sourceDirectory = E:\foo\src\main\java [echo] project.build.scriptSourceDirectory = src/main/scripts [echo] project.build.testSourceDirectory = E:\foo\src\test\java [echo] project.build.outputDirectory = E:\obj/test/classes [echo] project.build.testOutputDirectory = E:\obj/test/test-classes [echo] project.build.directory = E:\obj/test [INFO] Executed tasks Maven 2.0.8 [INFO] [antrun:run {execution: default}] [INFO] Executing tasks [echo] Debug data [echo] basedir = E:\foo [echo] djobj = E:\obj [echo] project.build.sourceDirectory = E:\foo\src\main\java [echo] project.build.scriptSourceDirectory = src/main/scripts [echo] project.build.testSourceDirectory = E:\foo\src\test\java [echo] project.build.outputDirectory = E:\obj/test/classes [echo] project.build.testOutputDirectory = E:\obj/test/test-classes [echo] project.build.directory = E:\obj/test [INFO] Executed tasks Maven 2.0.9 [INFO] [antrun:run {execution: default}] [INFO] Executing tasks [echo] Debug data [echo] basedir = E:\foo [echo] djobj = E:\obj [echo] project.build.sourceDirectory = E:\foo\src\main\java [echo] project.build.scriptSourceDirectory = src/main/scripts [echo] project.build.testSourceDirectory = E:\foo\src\test\java [echo] project.build.outputDirectory = E:\foo\E:\obj\test\classes [echo] project.build.testOutputDirectory = E:\foo\E:\obj\test\test-classes [echo] project.build.directory = E:\foo\E:\obj\test [INFO] Executed tasks Maven 2.0.10 [INFO] [antrun:run {execution: default}] [INFO] Executing tasks [echo] Debug data [echo] basedir = E:\foo [echo] djobj = E:\obj [echo] project.build.sourceDirectory = E:\foo\src\main\java [echo] project.build.scriptSourceDirectory = src/main/scripts [echo] project.build.testSourceDirectory = E:\foo\src\test\java [echo] project.build.outputDirectory = E:\foo\E:\obj\test\classes [echo] project.build.testOutputDirectory = E:\foo\E:\obj\test\test-classes [echo] project.build.directory = E:\foo\E:\obj\test [INFO] Executed tasks --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
