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:
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 @@ D. How to use Maven to build Lucene/Solr
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

View File

@ -121,10 +121,10 @@ New Features
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 <dependencyManagement>
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
<dependencyManagement> section of the grandparent POM. (Steve Rowe)
* LUCENE-5322: Clean up / simplify Maven-related Ant targets.
(Steve Rowe)

View File

@ -80,10 +80,6 @@ public class GetMavenDependenciesTask extends Task {
// 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 @@ public class GetMavenDependenciesTask extends Task {
// - 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 @@ public class GetMavenDependenciesTask extends Task {
}
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));