You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2020/09/29 08:24:32 UTC
[lucene-solr] 03/03: LUCENE-9547: Race condition in maven artifact
configuration results in wrong group/ artifact name
This is an automated email from the ASF dual-hosted git repository.
dweiss pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 2b692ccb714fe000bacceb4a5bcd21d5ae51930d
Author: Dawid Weiss <da...@carrotsearch.com>
AuthorDate: Tue Sep 29 09:42:56 2020 +0200
LUCENE-9547: Race condition in maven artifact configuration results in wrong group/ artifact name
---
gradle/maven/defaults-maven.gradle | 41 ++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 15 deletions(-)
diff --git a/gradle/maven/defaults-maven.gradle b/gradle/maven/defaults-maven.gradle
index 5c260f3..83e0051 100644
--- a/gradle/maven/defaults-maven.gradle
+++ b/gradle/maven/defaults-maven.gradle
@@ -69,26 +69,37 @@ configure(rootProject) {
":solr:test-framework",
]
}
+}
- configure(subprojects.findAll { it.path in rootProject.published }) {
- apply plugin: 'maven-publish'
- apply plugin: 'signing'
+configure(subprojects.findAll { it.path in rootProject.published }) { prj ->
+ apply plugin: 'maven-publish'
+ apply plugin: 'signing'
- publishing {
- // TODO: Add publishing repository details.
- }
+ publishing {
+ // TODO: Add publishing repository details.
+ }
- plugins.withType(JavaPlugin) {
- task sourcesJar(type: Jar, dependsOn: classes) {
- archiveClassifier = 'sources'
- from sourceSets.main.allJava
- }
+ plugins.withType(JavaPlugin) {
+ task sourcesJar(type: Jar, dependsOn: classes) {
+ archiveClassifier = 'sources'
+ from sourceSets.main.allJava
+ }
- task javadocJar(type: Jar, dependsOn: javadoc) {
- archiveClassifier = 'javadoc'
- from javadoc.destinationDir
- }
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ archiveClassifier = 'javadoc'
+ from javadoc.destinationDir
+ }
+ // This moves publishing configuration after all the scripts of all projects
+ // have been evaluated. This is required because we set artifact groups
+ // and archivesBaseName in other scripts (artifact-naming.gradle) and
+ // maven pom does not accept lazy property providers (so everything must
+ // be in its final form).
+ //
+ // In theory project.afterEvaluate closure should also work but for some reason
+ // it fired earlier than artifact-naming.gradle; don't know whether it's a bug
+ // in gradle or just complex relationships between lazy collection hooks.
+ gradle.projectsEvaluated {
publishing {
def configurePom = {
name = "Apache Solr/Lucene (${project.name})"