LUCENE-5420: 'ant get-maven-poms' should support custom version formats

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1562530 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Steven Rowe 2014-01-29 18:03:24 +00:00
parent acfba809aa
commit 332ac341a0
3 changed files with 19 additions and 12 deletions

View File

@ -77,7 +77,7 @@ D. How to use Maven to build Lucene/Solr
The details, followed by some example Maven commands: 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 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 from the Apache Subversion repository, run "svn update" from the top
@ -97,10 +97,15 @@ D. How to use Maven to build Lucene/Solr
filling in the project version with the default "X.X-SNAPSHOT". If you 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 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 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 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 Note: if you change the version in the POMs, there is one test method
that will fail under maven-surefire-plugin: that will fail under maven-surefire-plugin:
o.a.l.index.TestCheckIndex#testLuceneConstantVersion(). It's safe to o.a.l.index.TestCheckIndex#testLuceneConstantVersion(). It's safe to

View File

@ -121,10 +121,10 @@ New Features
Build Build
* LUCENE-5217: Maven config: get dependencies from Ant+Ivy config; disable * LUCENE-5217,LUCENE-5420: Maven config: get dependencies from Ant+Ivy config;
transitive dependency resolution for all depended-on artifacts by putting disable transitive dependency resolution for all depended-on artifacts by
an exclusion for each transitive dependency in the <dependencyManagement> putting an exclusion for each transitive dependency in the
section of the grandparent POM. (Steve Rowe) <dependencyManagement> section of the grandparent POM. (Steve Rowe)
* LUCENE-5322: Clean up / simplify Maven-related Ant targets. * LUCENE-5322: Clean up / simplify Maven-related Ant targets.
(Steve Rowe) (Steve Rowe)

View File

@ -80,10 +80,6 @@ public class GetMavenDependenciesTask extends Task {
// lucene/build/core/classes/java // lucene/build/core/classes/java
private static final Pattern COMPILATION_OUTPUT_DIRECTORY_PATTERN private static final Pattern COMPILATION_OUTPUT_DIRECTORY_PATTERN
= Pattern.compile("(lucene|solr)/build/(?:contrib/)?(.*)/classes/(?:java|test)"); = 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 Pattern PROPERTY_REFERENCE_PATTERN = Pattern.compile("\\$\\{([^}]+)\\}");
private static final String UNWANTED_INTERNAL_DEPENDENCIES private static final String UNWANTED_INTERNAL_DEPENDENCIES
= "/(?:test-)?lib/|test-framework/classes/java|/test-files|/resources"; = "/(?:test-)?lib/|test-framework/classes/java|/test-files|/resources";
@ -618,7 +614,13 @@ public class GetMavenDependenciesTask extends Task {
} }
artifactId.append(artifact); artifactId.append(artifact);
} else { } 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()) { if (matcher.matches()) {
// Pattern.compile(".*(lucene|solr)([^/]*?)-(?:\\d\\.)+\\d(?:-SNAPSHOT)?\\.jar)") // Pattern.compile(".*(lucene|solr)([^/]*?)-(?:\\d\\.)+\\d(?:-SNAPSHOT)?\\.jar)")
artifactId.append(matcher.group(1)); artifactId.append(matcher.group(1));