Index: dev-tools/maven/README.maven =================================================================== --- dev-tools/maven/README.maven (revision 1562293) +++ dev-tools/maven/README.maven (working copy) @@ -77,7 +77,7 @@ The details, followed by some example Maven commands: - 1. Prerequisites: JDK 1.7+ and Maven 2.2.1 or 3.0.X + 1. Prerequisites: JDK 1.7+ and Maven 2.2.1 or 3.X 2. Make sure your sources are up to date. If you checked your sources out from the Apache Subversion repository, run "svn update" from the top @@ -97,10 +97,15 @@ filling in the project version with the default "X.X-SNAPSHOT". If you want the POMs and the Maven-built artifacts to have a version other than the default, you can supply an alternate version on the command line - with the above command, e.g.: + with the above command, e.g. "my-special-version": ant -Dversion=my-special-version get-maven-poms + or to append "my-special-version" to the current base version, e.g. 5.0, + resulting in version "5.0-my-special-version": + + ant -Ddev.version.suffix=my-special-version get-maven-poms + Note: if you change the version in the POMs, there is one test method that will fail under maven-surefire-plugin: o.a.l.index.TestCheckIndex#testLuceneConstantVersion(). It's safe to Index: lucene/CHANGES.txt =================================================================== --- lucene/CHANGES.txt (revision 1562293) +++ lucene/CHANGES.txt (working copy) @@ -121,10 +121,10 @@ Build -* LUCENE-5217: Maven config: get dependencies from Ant+Ivy config; disable - transitive dependency resolution for all depended-on artifacts by putting - an exclusion for each transitive dependency in the - section of the grandparent POM. (Steve Rowe) +* LUCENE-5217,LUCENE-5420: Maven config: get dependencies from Ant+Ivy config; + disable transitive dependency resolution for all depended-on artifacts by + putting an exclusion for each transitive dependency in the + section of the grandparent POM. (Steve Rowe) * LUCENE-5322: Clean up / simplify Maven-related Ant targets. (Steve Rowe) Index: lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java =================================================================== --- lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java (revision 1562293) +++ lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java (working copy) @@ -80,10 +80,6 @@ // lucene/build/core/classes/java private static final Pattern COMPILATION_OUTPUT_DIRECTORY_PATTERN = Pattern.compile("(lucene|solr)/build/(?:contrib/)?(.*)/classes/(?:java|test)"); - // Local: lucene/build/analysis/common/lucene-analyzers-common-5.0-SNAPSHOT.jar - // Jenkins: lucene/build/analysis/common/lucene-analyzers-common-5.0-2013-10-31_18-52-24.jar - private static final Pattern INTERNAL_JAR_PATTERN - = Pattern.compile(".*(lucene|solr)([^/]*?)-\\d[-._\\d]*(?:-SNAPSHOT)?\\.jar"); private static final Pattern PROPERTY_REFERENCE_PATTERN = Pattern.compile("\\$\\{([^}]+)\\}"); private static final String UNWANTED_INTERNAL_DEPENDENCIES = "/(?:test-)?lib/|test-framework/classes/java|/test-files|/resources"; @@ -101,7 +97,7 @@ // - they need compile-scope deps to also be test-scope deps. modulesWithSeparateCompileAndTestPOMs.addAll (Arrays.asList("lucene-core", "lucene-codecs", "solr-core", "solr-solrj")); - + // Add external dependencies here that should be optional (i.e., not invoke Maven's transitive dep mechanism). // Format is "groupId:artifactId" optionalExternalDependencies.addAll(Arrays.asList @@ -618,7 +614,13 @@ } artifactId.append(artifact); } else { - matcher = INTERNAL_JAR_PATTERN.matcher(dependency); + // Local: lucene/build/analysis/common/lucene-analyzers-common-5.0-SNAPSHOT.jar + // Jenkins: lucene/build/analysis/common/lucene-analyzers-common-5.0-2013-10-31_18-52-24.jar + // Also support any custom version, which won't necessarily conform to any predefined pattern. + Pattern internalJarPattern = Pattern.compile(".*(lucene|solr)([^/]*?)-" + + Pattern.quote(getProject().getProperty("version")) + "\\.jar"); + + matcher = internalJarPattern.matcher(dependency); if (matcher.matches()) { // Pattern.compile(".*(lucene|solr)([^/]*?)-(?:\\d\\.)+\\d(?:-SNAPSHOT)?\\.jar)") artifactId.append(matcher.group(1));