Author: bentmann Date: Wed Sep 3 07:43:28 2008 New Revision: 691629 URL: http://svn.apache.org/viewvc?rev=691629&view=rev Log: [MANT-44] Generated ant copy commands in package target point to hard-coded local repository instead of ${maven.repo.local}
Modified: maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java Modified: maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml?rev=691629&r1=691628&r2=691629&view=diff ============================================================================== --- maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml (original) +++ maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml Wed Sep 3 07:43:28 2008 @@ -29,8 +29,14 @@ <version>1.0-SNAPSHOT</version> <name>Webapp project</name> <url>http://maven.apache.org</url> + <dependencies> <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.14</version> + </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.2</version> Modified: maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh?rev=691629&r1=691628&r2=691629&view=diff ============================================================================== --- maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh (original) +++ maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh Wed Sep 3 07:43:28 2008 @@ -2,8 +2,9 @@ import java.io.File; import java.io.IOException; import java.util.jar.*; +import java.util.regex.*; -import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.*; try { @@ -19,12 +20,24 @@ System.err.println( "The file '" + build.getAbsolutePath() + "' is a directory or doesn't exist." ); return false; } + mavenBuild = new File( basedir, "maven-build.xml" ); if ( mavenBuild.isDirectory() || !mavenBuild.exists() ) { System.err.println( "The file '" + mavenBuild.getAbsolutePath() + "' is a directory or doesn't exist." ); return false; } + + String xml = FileUtils.fileRead( mavenBuild, "UTF-8" ); + Matcher m0 = Pattern.compile( "<copy\\s+file\\s*=\\s*\\Q\"${maven.repo.local}/log4j/log4j/1.2.14/log4j-1.2.14.jar\"\\E" + + "\\s*todir\\s*=\\s*\\Q\"${maven.build.dir}/${maven.build.finalName}/WEB-INF/lib\"\\E" ).matcher( xml ); + System.out.println( "Checking for existence of <copy> from ${maven.repo.local} for WAR libs" ); + if ( !m0.find() ) + { + System.err.println( "FAILED!\n" + xml ); + return false; + } + mavenBuildProperties = new File( basedir, "maven-build.properties" ); if ( mavenBuildProperties.isDirectory() || !mavenBuildProperties.exists() ) { @@ -48,6 +61,7 @@ "WEB-INF/test.txt", "WEB-INF/classes/test.properties", "WEB-INF/classes/org/MyClass.class", + "WEB-INF/lib/log4j-1.2.14.jar", }; for ( String entry : expected ) { Modified: maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java?rev=691629&r1=691628&r2=691629&view=diff ============================================================================== --- maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java (original) +++ maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java Wed Sep 3 07:43:28 2008 @@ -1039,7 +1039,7 @@ } else if ( AntBuildWriterUtil.isEarPackaging( project ) ) { - AntBuildWriterUtil.writeEarTask( writer, project ); + AntBuildWriterUtil.writeEarTask( writer, project, localRepository ); synonym = "ear"; } else if ( AntBuildWriterUtil.isWarPackaging( project ) ) Modified: maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java?rev=691629&r1=691628&r2=691629&view=diff ============================================================================== --- maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java (original) +++ maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java Wed Sep 3 07:43:28 2008 @@ -452,12 +452,13 @@ * * @param writer not null * @param project not null + * @param localRepository not null * @throws IOException if any */ - public static void writeEarTask( XMLWriter writer, MavenProject project ) + public static void writeEarTask( XMLWriter writer, MavenProject project, File localRepository ) throws IOException { - writeCopyLib( writer, project, "${maven.build.dir}/${maven.build.finalName}" ); + writeCopyLib( writer, project, localRepository, "${maven.build.dir}/${maven.build.finalName}" ); writer.startElement( "ear" ); writer.addAttribute( "destfile", "${maven.build.dir}/${maven.build.finalName}.ear" ); @@ -502,7 +503,7 @@ webXml = webXml.substring( "${basedir}/".length() ); } - writeCopyLib( writer, project, "${maven.build.dir}/${maven.build.finalName}/WEB-INF/lib" ); + writeCopyLib( writer, project, localRepository, "${maven.build.dir}/${maven.build.finalName}/WEB-INF/lib" ); writer.startElement( "war" ); writer.addAttribute( "destfile", "${maven.build.dir}/${maven.build.finalName}.war" ); @@ -1108,9 +1109,10 @@ * * @param writer not null * @param project not null + * @param localRepository not null * @param outputDir not null */ - private static void writeCopyLib( XMLWriter writer, MavenProject project, String outputDir ) + private static void writeCopyLib( XMLWriter writer, MavenProject project, File localRepository, String outputDir ) { writer.startElement( "mkdir" ); writer.addAttribute( "dir", outputDir ); @@ -1125,8 +1127,15 @@ if ( !artifact.getScope().equals( Artifact.SCOPE_PROVIDED ) && !artifact.getScope().equals( Artifact.SCOPE_TEST ) ) { + String path = artifact.getFile().getPath(); + path = toRelative( localRepository, path ); + if ( !new File( path ).isAbsolute() ) + { + path = "${maven.repo.local}/" + path; + } + writer.startElement( "copy" ); - writer.addAttribute( "file", artifact.getFile().getPath() ); + writer.addAttribute( "file", path ); addWrapAttribute( writer, "copy", "todir", outputDir, 3 ); writer.endElement(); // copy }