Author: ludovicc-guest Date: 2012-01-23 23:42:28 +0000 (Mon, 23 Jan 2012) New Revision: 15734
Added: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.doc-base.api.multi.vm trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.install.multi.vm trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.result.poms trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.rules trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.substvars trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.1.18/ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.x/ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.x/plexus-components-1.x.pom Modified: trunk/maven-debian-helper/debian/changelog trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallDocMojo.java trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallMojo.java trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/GenerateDebianFilesMojo.java trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build-classpath.vm trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.properties.ant.vm trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.xml.vm trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.ant.vm trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.vm trunk/maven-debian-helper/maven-packager-utils/src/main/resources/rules.ant.vm trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms Log: * mh_make: add support to generate and install Javadoc on multi projects during an Ant build. * mh_make: fix resolution of versionless dependencies and missing parent POMs (Closes: #639316) * mh_make: Don't include document packages in the dependency search (Closes: #656235) * Fix installation of javadoc jar (Closes: #656311) Modified: trunk/maven-debian-helper/debian/changelog =================================================================== --- trunk/maven-debian-helper/debian/changelog 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/debian/changelog 2012-01-23 23:42:28 UTC (rev 15734) @@ -9,10 +9,17 @@ * mh_make: clean up Debian emails of the form My Name<my.n...@provider.com> (Closes: #638788) * mh_make: fix description in generated maven.rules (Closes: #639637) + * mh_make: add support to generate and install Javadoc on multi projects + during an Ant build. * Fix failing tests in DependenciesSolverTest * Run unit tests during the build, * d/control: add B-D on libcommons-io-java as it's used by the junit tests. * Generate package-doc.poms for Ant builds + * mh_make: fix resolution of versionless dependencies and missing + parent POMs (Closes: #639316) + * mh_make: Don't include document packages in the dependency search + (Closes: #656235) + * Fix installation of javadoc jar (Closes: #656311) [ Damien Raude-Morvan ] * maven-packager-utils/src/main/resources/build.xml.vm: package-module ant @@ -20,7 +27,7 @@ * Follow-up for #589635: avoid creating a file called mvn-build during the build. - -- Damien Raude-Morvan <draz...@debian.org> Sun, 08 Jan 2012 14:26:21 +0100 + -- Ludovic Claude <ludovic.cla...@laposte.net> Tue, 10 Jan 2012 00:20:32 +0100 maven-debian-helper (1.4.5) unstable; urgency=low Modified: trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallDocMojo.java =================================================================== --- trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallDocMojo.java 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallDocMojo.java 2012-01-23 23:42:28 UTC (rev 15734) @@ -30,6 +30,10 @@ setClassifier("javadoc"); } + protected String jarName() { + return getArtifactId() + "-" + getVersion() + "-javadoc.jar"; + } + /** * do the actual work */ Modified: trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallMojo.java =================================================================== --- trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallMojo.java 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-debian-plugin/src/main/java/org/debian/maven/plugin/SysInstallMojo.java 2012-01-23 23:42:28 UTC (rev 15734) @@ -314,11 +314,15 @@ } protected String jarName() { - String jarName = ""; + String jarName; if (finalName != null && finalName.length() > 0) { - jarName += finalName; + jarName = finalName; } else { - jarName += artifactId + "-" + version; + if (classifier != null) { + jarName = artifactId + "-" + version + "-" + classifier; + } else { + jarName = artifactId + "-" + version; + } } return jarName + ".jar"; } @@ -440,6 +444,7 @@ protected void copyJar() throws IOException { File jarFile = new File(fullJarName()); if (jarFile.exists()) { + System.out.println("Install jar file into Maven repo: " + jarFile.getAbsolutePath()); FileUtils.copyFile(jarFile, new File(jarDestPath())); if (debianVersion != null && !debianVersion.equals(version)) { mkdir(debianFullRepoPath()); Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java 2012-01-23 23:42:28 UTC (rev 15734) @@ -1134,7 +1134,7 @@ } else { String pkg = searchPkg(new File("/usr/share/maven-repo/" + dependency.getGroupId().replace('.', '/') - + "/" + dependency.getArtifactId())); + + "/" + dependency.getArtifactId()), ".pom"); if (pkg != null) { String installedVersion = getPackageVersion(pkg, true); if (installedVersion != null) { @@ -1180,6 +1180,8 @@ if (!s.startsWith("n")) { System.out.println("Rescanning /usr/share/maven-repo..."); pomTransformer.getRepository().scan(); + // Clear caches + filesInPackages.clear(); return resolveDependency(dependency, sourcePom, buildTime, mavenExtension, management); } } @@ -1304,17 +1306,27 @@ return false; } + private String searchPkg(File dir, String extension) { + GetFilteredPackageResult packageResult = new GetFilteredPackageResult(extension); + File cacheId = new File(dir, "_" + extension); + return searchPkg(cacheId, dir, packageResult); + } + private String searchPkg(File file) { - if (filesInPackages.containsKey(file)) { - return filesInPackages.get(file); + GetPackageResult packageResult = new GetPackageResult(); + return searchPkg(file, file, packageResult); + } + + private String searchPkg(File cacheId, File fileToSearch, GetPackageResult packageResult) { + if (filesInPackages.containsKey(cacheId)) { + return filesInPackages.get(cacheId); } - GetPackageResult packageResult = new GetPackageResult(); - executeProcess(new String[]{"dpkg", "--search", file.getAbsolutePath()}, packageResult); + executeProcess(new String[]{"dpkg", "--search", fileToSearch.getAbsolutePath()}, packageResult); if (packageResult.getResult() != null) { String pkg = packageResult.getResult(); if (pkg != null) { - filesInPackages.put(file, pkg); + filesInPackages.put(cacheId, pkg); } return pkg; } @@ -1327,10 +1339,10 @@ if (!new File("/usr/bin/apt-file").exists()) { return null; } - executeProcess(new String[]{"apt-file", "search", file.getAbsolutePath()}, packageResult); + executeProcess(new String[]{"apt-file", "search", fileToSearch.getAbsolutePath()}, packageResult); String pkg = packageResult.getResult(); if (pkg != null) { - filesInPackages.put(file, pkg); + filesInPackages.put(cacheId, pkg); } return pkg; } @@ -1428,17 +1440,40 @@ if (!result.equals(result.trim()) || result.startsWith("dpkg")) { result = null; } else { - System.out.println("Found " + result); + result = foundResult(result); } } } + protected String foundResult(String potentialMatch) { + System.out.println("Found " + potentialMatch); + return potentialMatch; + } + public String getResult() { return result; } } + static class GetFilteredPackageResult extends GetPackageResult { + private final String extension; + + public GetFilteredPackageResult(String extension) { + this.extension = extension; + } + + protected String foundResult(String potentialMatch) { + if (potentialMatch.endsWith(extension)) { + System.out.println("Found " + potentialMatch); + return potentialMatch; + } else { + return null; + } + } + + } + static class GetPackageVersionResult implements OutputHandler { private String result; Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/GenerateDebianFilesMojo.java =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/GenerateDebianFilesMojo.java 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/GenerateDebianFilesMojo.java 2012-01-23 23:42:28 UTC (rev 15734) @@ -22,15 +22,8 @@ import org.apache.maven.plugin.MojoExecutionException; import java.io.*; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.TreeSet; +import java.util.*; + import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.project.MavenProject; import org.apache.velocity.VelocityContext; @@ -271,20 +264,22 @@ if (substvarsFile.exists()) { Properties substvars = new Properties(); substvars.load(new FileReader(substvarsFile)); - List depends = new ArrayList(); - depends.addAll(split(substvars.getProperty("maven.CompileDepends"))); - depends.addAll(split(substvars.getProperty("maven.Depends"))); + List compileDepends = new ArrayList(); + compileDepends.addAll(split(substvars.getProperty("maven.CompileDepends"))); + compileDepends.addAll(split(substvars.getProperty("maven.Depends"))); + List buildDepends = new ArrayList(compileDepends); + List testDepends = new ArrayList(split(substvars.getProperty("maven.TestDepends"))); if (runTests) { - depends.addAll(split(substvars.getProperty("maven.TestDepends"))); + buildDepends.addAll(testDepends); } if (generateJavadoc) { - depends.addAll(split(substvars.getProperty("maven.DocDepends"))); - depends.addAll(split(substvars.getProperty("maven.DocOptionalDepends"))); + buildDepends.addAll(split(substvars.getProperty("maven.DocDepends"))); + buildDepends.addAll(split(substvars.getProperty("maven.DocOptionalDepends"))); } if ("maven".equals(packageType)) { boolean seenJavadocPlugin = false; // Remove dependencies that are implied by maven-debian-helper - for (Iterator i = depends.iterator(); i.hasNext();) { + for (Iterator i = buildDepends.iterator(); i.hasNext();) { String dependency = (String) i.next(); if (dependency.startsWith("libmaven-clean-plugin-java") || dependency.startsWith("libmaven-resources-plugin-java") || @@ -300,11 +295,11 @@ } } if (generateJavadoc && !seenJavadocPlugin) { - depends.add("libmaven-javadoc-plugin-java"); + buildDepends.add("libmaven-javadoc-plugin-java"); } } else if ("ant".equals(packageType)) { // Remove dependencies that are implied by ant packaging - for (Iterator i = depends.iterator(); i.hasNext(); ) { + for (Iterator i = buildDepends.iterator(); i.hasNext(); ) { String dependency = (String) i.next(); if (dependency.equals("ant") || dependency.startsWith("ant ") || @@ -312,23 +307,29 @@ i.remove(); } } - depends.remove("ant"); - depends.remove("ant-optional"); + buildDepends.remove("ant"); + buildDepends.remove("ant-optional"); } - context.put("compileDependencies", depends); + context.put("buildDependencies", buildDepends); context.put("runtimeDependencies", split(substvars.getProperty("maven.Depends"))); + context.put("testDependencies", split(substvars.getProperty("maven.TestDepends"))); context.put("optionalDependencies", split(substvars.getProperty("maven.OptionalDepends"))); context.put("javadocDependencies", split(substvars.getProperty("maven.DocDepends"))); context.put("javadocOptionalDependencies", split(substvars.getProperty("maven.DocOptionalDepends"))); if ("ant".equals(packageType)) { - Set buildJars = new TreeSet(); - for (Iterator i = depends.iterator(); i.hasNext();) { + Set compileJars = new TreeSet(); + for (Iterator i = compileDepends.iterator(); i.hasNext();) { String library = (String) i.next(); - buildJars.addAll(listSharedJars(library)); + compileJars.addAll(listSharedJars(library)); } - buildJars.add("ant-junit"); - context.put("buildJars", buildJars); + context.put("compileJars", compileJars); + Set testJars = new TreeSet(); + for (Iterator i = testDepends.iterator(); i.hasNext();) { + String library = (String) i.next(); + testJars.addAll(listSharedJars(library)); + } + context.put("testJars", testJars); } } else { System.err.println("Cannot find file " + substvarsFile); @@ -425,8 +426,13 @@ generateFile(context, rulesTemplate, new File("."), ".debianVersion"); if (generateJavadoc) { - generateFile(context, "java-doc.doc-base.api.vm", outputDirectory, binPackageName + "-doc.doc-base.api"); - generateFile(context, "java-doc.install.vm", outputDirectory, binPackageName + "-doc.install"); + if (project.getPackaging().equals("pom") && collectedProjects.size() > 1) { + generateFile(context, "java-doc.doc-base.api.multi.vm", outputDirectory, binPackageName + "-doc.doc-base.api"); + generateFile(context, "java-doc.install.multi.vm", outputDirectory, binPackageName + "-doc.install"); + } else { + generateFile(context, "java-doc.doc-base.api.vm", outputDirectory, binPackageName + "-doc.doc-base.api"); + generateFile(context, "java-doc.install.vm", outputDirectory, binPackageName + "-doc.install"); + } } if ("ant".equals(packageType)) { @@ -498,8 +504,7 @@ + extension); if ("jar".equals(extension) && generateJavadoc && "ant".equals(packageType) && listOfJavadocPOMs != null) { String artifactId = mavenProject.getArtifact().getArtifactId(); - String docPom = dirRelPath + "target/" + artifactId + ".javadoc.pom"; - ListOfPOMs.POMOptions javadocPomOptions = listOfJavadocPOMs.getOrCreatePOMOptions(docPom); + ListOfPOMs.POMOptions javadocPomOptions = listOfJavadocPOMs.getOrCreatePOMOptions(pomFile); javadocPomOptions.setIgnorePOM(true); javadocPomOptions.setArtifact(dirRelPath + "target/" + artifactId + ".javadoc.jar"); javadocPomOptions.setClassifier("javadoc"); @@ -632,8 +637,13 @@ out.close(); } - private List listSharedJars(String library) { - final List jars = new ArrayList(); + private Map<String, List<String>> cacheOfSharedJars = new HashMap<String, List<String>>(); + private List<String> listSharedJars(String library) { + if (cacheOfSharedJars.get(library) != null) { + return cacheOfSharedJars.get(library); + } + + final List<String> jars = new ArrayList<String>(); if (library.indexOf("(") > 0) { library = library.substring(0, library.indexOf("(")).trim(); } @@ -653,6 +663,7 @@ } } }); + cacheOfSharedJars.put(library, jars); return jars; } Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build-classpath.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build-classpath.vm 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build-classpath.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -1 +1,4 @@ /usr/share/java/ant-nodeps.jar +#if($runTests) +/usr/share/java/ant-junit.jar +#end \ No newline at end of file Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.properties.ant.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.properties.ant.vm 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.properties.ant.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -7,7 +7,7 @@ maven.test.skip=true #end classpath.compile=\ -#foreach ($jar in $buildJars) +#foreach ($jar in $compileJars) /usr/share/java/${jar}.jar:\ #end #set( $D = '$' ) @@ -17,3 +17,9 @@ #end #end target/classes + +classpath.test=\ +#foreach ($jar in $testJars) + /usr/share/java/${jar}.jar:\ +#end + target/classes Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.xml.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.xml.vm 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/build.xml.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -42,6 +42,19 @@ </macrodef> #end +#if($generateJavadoc) + <macrodef name="package-module-doc"> + <attribute name="dir"/> + <sequential> + <ant target="local-install-doc" antfile="${maven.build}" dir="@{dir}"> + <property name="debian.dir" location="debian" /> + <property name="project.dir" value="@{dir}" /> + <property name="keep-cleaned-pom" value="true" /> + </ant> + </sequential> + </macrodef> + +#end <target name="clean"> <clean-module dir=""/> #foreach ($module in $collectedProjects) @@ -62,13 +75,11 @@ #if ($generateJavadoc) <target name="javadoc"> - <javadoc destdir="${javadoc.dir}"> #foreach ($module in $collectedProjects) #if ($module.packaging != "pom") - <packageset dir="${module.baseDir}src/main/java/"/> + <package-module-doc dir="${module.baseDir}"/> #end #end - </javadoc> </target> <target name="build-all" depends="package, javadoc" /> Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.ant.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.ant.vm 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.ant.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -18,9 +18,9 @@ Priority: optional Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org> Uploaders: ${packager} <${packagerEmail}> -Build-Depends: debhelper (>= 7), default-jdk, maven-repo-helper (>= 1.5)#if ($project.packaging != "pom" || $project.modules.size() > 0), ant-optional, maven-ant-helper (>= 7.1)#end$space -#if(!$compileDependencies.isEmpty()) -Build-Depends-Indep:#printDependencies($compileDependencies)$space +Build-Depends: debhelper (>= 7), default-jdk, maven-repo-helper (>= 1.7.1)#if ($project.packaging != "pom" || $project.modules.size() > 0), ant-optional, maven-ant-helper (>= 7.6)#end$space +#if(!$buildDependencies.isEmpty()) +Build-Depends-Indep:#printDependencies($buildDependencies)$space #end Standards-Version: 3.9.2 Vcs-Svn: svn://svn.debian.org/svn/pkg-java/trunk/${package} Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.vm 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/control.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -18,9 +18,9 @@ Priority: optional Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org> Uploaders: ${packager} <${packagerEmail}> -Build-Depends: debhelper (>= 7), cdbs, default-jdk, maven-debian-helper (>= 1.4) -#if(!$compileDependencies.isEmpty()) -Build-Depends-Indep:#printDependencies($compileDependencies)$space +Build-Depends: debhelper (>= 7), cdbs, default-jdk, maven-debian-helper (>= 1.5) +#if(!$buildDependencies.isEmpty()) +Build-Depends-Indep:#printDependencies($buildDependencies)$space #end Standards-Version: 3.9.2 Vcs-Svn: svn://svn.debian.org/svn/pkg-java/trunk/${package} Added: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.doc-base.api.multi.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.doc-base.api.multi.vm (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.doc-base.api.multi.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,20 @@ +Document: ${binPackage} +Title: API Javadoc for ${project.Name} +Author: ${projectTeam} +Abstract: This is the API Javadoc provided for the + ${binPackage} libraries. +Section: Programming + +Format: HTML +#set($seenIndex=false) +#foreach ($module in $collectedProjects) +#if ($module.packaging != "pom") +#if(!$seenIndex) +Index: /usr/share/doc/${binPackage}/${module.baseDir}index.html +Files: /usr/share/doc/${binPackage}/${module.baseDir}* +#else +#set($seenIndex=true) + /usr/share/doc/${binPackage}/${module.baseDir}* +#end +#end +#end Added: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.install.multi.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.install.multi.vm (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/java-doc.install.multi.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,5 @@ +#foreach ($module in $collectedProjects) +#if ($module.packaging != "pom") +${module.baseDir}target/apidocs/* usr/share/doc/${binPackage}/${module.baseDir} +#end +#end Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/resources/rules.ant.vm =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/main/resources/rules.ant.vm 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/main/resources/rules.ant.vm 2012-01-23 23:42:28 UTC (rev 15734) @@ -6,10 +6,10 @@ #if ($project.packaging != "pom" || $project.modules.size() > 0) export JAVA_HOME=/usr/lib/jvm/default-java export CLASSPATH=$(shell for jar in `cat debian/build-classpath`; do if [ -f "$$jar" ]; then echo -n "$${jar}:"; fi; done) -#if ($project.packaging == "pom" && $project.modules.size() > 0) -export ANT_ARGS=-Dbasedir=$(realpath .) -Dpackage=$(DEB_SOURCE_PACKAGE) -f debian/build.xml +#if ($project.packaging == "pom") +export ANT_ARGS=-Dbasedir=$(realpath .) -Dpackage=$(DEB_SOURCE_PACKAGE) -Dversion=$(DEB_UPSTREAM_VERSION) -f debian/build.xml #else -export ANT_ARGS=-Dbasedir=$(realpath .) -Dpackage=$(DEB_SOURCE_PACKAGE) -Dversion=$(DEB_UPSTREAM_VERSION) -f /usr/share/maven-ant-helper/maven-build.xml +export ANT_ARGS=-Dbasedir=$(realpath .) -Dpackage=$(DEB_SOURCE_PACKAGE) -f /usr/share/maven-ant-helper/maven-build.xml #end #end Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java 2012-01-23 23:42:28 UTC (rev 15734) @@ -271,25 +271,42 @@ assertFileEquals("buildhelper-maven-plugin.rules", "maven.rules"); } - // TODO: fix this test - public void XXXtestSolvePlexusCompilerDependencies() throws Exception { + public void testSolvePlexusCompilerDependencies() throws Exception { useFile("plexus-compiler/pom.xml", pomFile); DependenciesSolver solver = new DependenciesSolver(); solver.setMavenRepo(getFileInClasspath("repository/root.dir").getParentFile()); solver.setOutputDirectory(testDir); - solver.setExploreProjects(false); + // libplexus-compiler-java.poms already contains some POMs but we want to discover them all + solver.setExploreProjects(true); solver.setPackageName("libplexus-compiler-java"); solver.setPackageType("maven"); -// solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-changelog-plugin * * * *")); -// solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-changes-plugin * * * *")); -// solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-checkstyle-plugin * * * *")); -// solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-enforcer-plugin * * * *")); -// solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-project-info-reports-plugin * * * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("junit junit jar s/3\\..*/3.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-api jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-aspectj jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-csharp jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-eclipse jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-javac jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-jikes jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-manager jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-test jar s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler pom s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compilers pom s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-components pom s/1\\..*/1.x/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-container-default jar s/1\\.0-alpha.*/1.0-alpha/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("s/org.eclipse.jdt/org.eclipse.jdt.core.compiler/ s/core/ecj/ jar s/.*/debian/ * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-gpg-plugin * * * *")); + // Ignore those plugins for Ant builds + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-component-metadata * * * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven maven-artifact-test * * * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-surefire-plugin * * * *")); + solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.codehaus.plexus plexus-compiler-test * * * *")); + File listOfPoms = getFileInClasspath("libplexus-compiler-java.poms"); solver.setBaseDir(getFileInClasspath("plexus-compiler/pom.xml").getParentFile()); solver.setListOfPoms(new File(listOfPoms.getParent(), listOfPoms.getName())); solver.setInteractive(false); solver.setOffline(true); + solver.setRunTests(true); solver.setVerbose(true); solver.solveDependencies(); Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms 2012-01-23 00:37:30 UTC (rev 15733) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms 2012-01-23 23:42:28 UTC (rev 15734) @@ -1,2 +1,4 @@ -pom.xml --no-parent +pom.xml plexus-compiler-api/pom.xml +plexus-compilers/plexus-compiler-aspectj/pom.xml --ignore +plexus-compiler-test/pom.xml --ignore Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.result.poms =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.result.poms (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.result.poms 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,37 @@ +# List of POM files for the package +# Format of this file is: +# <path to pom file> [option]* +# where option can be: +# --ignore: ignore this POM and its artifact if any +# --ignore-pom: don't install the POM. To use on POM files that are created +# temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms] +# --no-parent: remove the <parent> tag from the POM +# --package=<package>: an alternative package to use when installing this POM +# and its artifact +# --has-package-version: to indicate that the original version of the POM is the same as the upstream part +# of the version for the package. +# --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM +# during a clean operation with mh_cleanpom or mh_installpom +# --artifact=<path>: path to the build artifact associated with this POM, +# it will be installed when using the command mh_install. [mh_install] +# --java-lib: install the jar into /usr/share/java to comply with Debian +# packaging guidelines +# --usj-name=<name>: name to use when installing the library in /usr/share/java +# --usj-version=<version>: version to use when installing the library in /usr/share/java +# --no-usj-versionless: don't install the versionless link in /usr/share/java +# --dest-jar=<path>: the destination for the real jar. +# It will be installed with mh_install. [mh_install] +# --classifier=<classifier>: Optional, the classifier for the jar. Empty by default. +# --site-xml=<location>: Optional, the location for site.xml if it needs to be installed. +# Empty by default. [mh_install] +# +pom.xml +plexus-compiler-api/pom.xml +plexus-compilers/plexus-compiler-aspectj/pom.xml --ignore +plexus-compiler-test/pom.xml --ignore +plexus-compiler-manager/pom.xml +plexus-compilers/pom.xml +plexus-compilers/plexus-compiler-csharp/pom.xml +plexus-compilers/plexus-compiler-eclipse/pom.xml +plexus-compilers/plexus-compiler-jikes/pom.xml +plexus-compilers/plexus-compiler-javac/pom.xml Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.rules =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.rules (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.rules 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,21 @@ +# Maven rules - transform Maven dependencies and plugins +# Format of this file is: +# [group] [artifact] [type] [version] [classifier] [scope] +# where each element can be either +# - the exact string, for example org.apache for the group, or 3.1 +# for the version. In this case, the element is simply matched +# and left as it is +# - * (the star character, alone). In this case, anything will +# match and be left as it is. For example, using * on the +# position of the artifact field will match any artifact id +# - a regular expression of the form s/match/replace/ +# in this case, elements that match are transformed using +# the regex rule. +# All elements much match before a rule can be applied +# Example rule: match jar with groupid= junit, artifactid= junit +# and version starting with 3., replacing the version with 3.x +# junit junit jar s/3\..*/3.x/ + +junit junit jar s/3\..*/3.x/ * * +org.codehaus.plexus plexus-components pom s/1\..*/1.x/ * * +org.codehaus.plexus plexus-container-default jar s/1\.0-alpha.*/1.0-alpha/ * * Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.substvars =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.substvars (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.substvars 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,5 @@ +#List of dependencies for libplexus-compiler-java, generated for use by debian/control +maven.CompileDepends= +maven.Depends=libplexus-components-java (>= 1.1.18), libplexus-utils-java (>= 1.5.15) +maven.OptionalDepends= +maven.TestDepends= Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,136 @@ +<?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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-components</artifactId> + <version>1.1.18</version> + <packaging>pom</packaging> + <properties> + <debian.hasPackageVersion/> + <debian.mavenRules>org.codehaus.plexus plexus-components pom s/1\..*/1.x/ * *</debian.mavenRules> + <debian.originalVersion>1.1.18</debian.originalVersion> + <debian.package>libplexus-components-java</debian.package> + </properties> + + <name>Plexus Components</name> + <url>http://plexus.codehaus.org/plexus-components</url> + <modules> + <module>plexus-archiver</module> + <module>plexus-cli</module> + <module>plexus-compiler</module> + <module>plexus-digest</module> + <module>plexus-i18n</module> + <module>plexus-interactivity</module> + <module>plexus-interpolation</module> + <module>plexus-io</module> + <module>plexus-resources</module> + <!-- + <module>plexus-swizzle</module> + --> + <module>plexus-velocity</module> + </modules> + <scm> + <connection>scm:svn:http://svn.codehaus.org/plexus/plexus-components/tags/plexus-components-1.1.18</connection> + <developerConnection>scm:svn:https://svn.codehaus.org/plexus/plexus-components/tags/plexus-components-1.1.18</developerConnection> + <url>http://fisheye.codehaus.org/browse/plexus/plexus-components/tags/plexus-components-1.1.18</url> + </scm> + <issueManagement> + <system>JIRA</system> + <url>http://jira.codehaus.org/browse/PLXCOMP</url> + </issueManagement> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>debian</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.x</version> + <scope>test</scope> + </dependency> + </dependencies> + </dependencyManagement> + <profiles> + <profile> + <id>parent-release</id> + <build> + <plugins> + <plugin> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <arguments>-N -Pplexus-release</arguments> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>maven-3</id> + <activation> + <file> + <!-- This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) --> + <exists>${basedir}</exists> + </file> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <inherited>false</inherited> + <executions> + <execution> + <id>attach-descriptor</id> + <goals> + <goal>attach-descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>m2e</id> + <activation> + <property> + <name>m2e.version</name> + </property> + </activation> + <properties> + <m2BuildDirectory>target</m2BuildDirectory> + </properties> + <build> + <directory>${m2BuildDirectory}</directory> + <plugins> + <plugin> + <groupId>org.maven.ide.eclipse</groupId> + <artifactId>lifecycle-mapping</artifactId> + <configuration> + <mappingId>customizable</mappingId> + <configurators> + <configurator id="org.maven.ide.eclipse.jdt.javaConfigurator"> + </configurator> + <configurator id="org.maven.ide.eclipse.plexus.annotations.plexusConfigurator"> + </configurator> + <configurator id="org.maven.ide.eclipse.modello.modelloConfigurator"> + </configurator> + </configurators> + <mojoExecutions> + <mojoExecution>org.apache.maven.plugins:maven-resources-plugin::</mojoExecution> + </mojoExecutions> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> \ No newline at end of file Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.x/plexus-components-1.x.pom =================================================================== --- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.x/plexus-components-1.x.pom (rev 0) +++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus-components/1.x/plexus-components-1.x.pom 2012-01-23 23:42:28 UTC (rev 15734) @@ -0,0 +1,136 @@ +<?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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-components</artifactId> + <version>1.x</version> + <packaging>pom</packaging> + <properties> + <debian.hasPackageVersion/> + <debian.mavenRules>org.codehaus.plexus plexus-components pom s/1\..*/1.x/ * *</debian.mavenRules> + <debian.originalVersion>1.1.18</debian.originalVersion> + <debian.package>libplexus-components-java</debian.package> + </properties> + + <name>Plexus Components</name> + <url>http://plexus.codehaus.org/plexus-components</url> + <modules> + <module>plexus-archiver</module> + <module>plexus-cli</module> + <module>plexus-compiler</module> + <module>plexus-digest</module> + <module>plexus-i18n</module> + <module>plexus-interactivity</module> + <module>plexus-interpolation</module> + <module>plexus-io</module> + <module>plexus-resources</module> + <!-- + <module>plexus-swizzle</module> + --> + <module>plexus-velocity</module> + </modules> + <scm> + <connection>scm:svn:http://svn.codehaus.org/plexus/plexus-components/tags/plexus-components-1.1.18</connection> + <developerConnection>scm:svn:https://svn.codehaus.org/plexus/plexus-components/tags/plexus-components-1.1.18</developerConnection> + <url>http://fisheye.codehaus.org/browse/plexus/plexus-components/tags/plexus-components-1.1.18</url> + </scm> + <issueManagement> + <system>JIRA</system> + <url>http://jira.codehaus.org/browse/PLXCOMP</url> + </issueManagement> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>debian</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.x</version> + <scope>test</scope> + </dependency> + </dependencies> + </dependencyManagement> + <profiles> + <profile> + <id>parent-release</id> + <build> + <plugins> + <plugin> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <arguments>-N -Pplexus-release</arguments> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>maven-3</id> + <activation> + <file> + <!-- This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) --> + <exists>${basedir}</exists> + </file> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <inherited>false</inherited> + <executions> + <execution> + <id>attach-descriptor</id> + <goals> + <goal>attach-descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>m2e</id> + <activation> + <property> + <name>m2e.version</name> + </property> + </activation> + <properties> + <m2BuildDirectory>target</m2BuildDirectory> + </properties> + <build> + <directory>${m2BuildDirectory}</directory> + <plugins> + <plugin> + <groupId>org.maven.ide.eclipse</groupId> + <artifactId>lifecycle-mapping</artifactId> + <configuration> + <mappingId>customizable</mappingId> + <configurators> + <configurator id="org.maven.ide.eclipse.jdt.javaConfigurator"> + </configurator> + <configurator id="org.maven.ide.eclipse.plexus.annotations.plexusConfigurator"> + </configurator> + <configurator id="org.maven.ide.eclipse.modello.modelloConfigurator"> + </configurator> + </configurators> + <mojoExecutions> + <mojoExecution>org.apache.maven.plugins:maven-resources-plugin::</mojoExecution> + </mojoExecutions> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> \ No newline at end of file _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits