Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Commit

Permalink
Revert "Explicitly add classifier to maven publication (#80)"
Browse files Browse the repository at this point in the history
This reverts commit 5b319ff.
  • Loading branch information
Goooler committed Aug 1, 2024
1 parent abe73c5 commit 4b27ca5
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,16 @@ import org.gradle.api.Project
import org.gradle.api.artifacts.ProjectDependency
import org.gradle.api.artifacts.SelfResolvingDependency
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.publish.maven.MavenPom
import org.gradle.api.publish.maven.MavenPublication

class ShadowExtension {
private final Provider<Archive> archive
private final Provider<Provider<RegularFile>> archiveFile
private final Provider<List<Dep>> allDependencies

ShadowExtension(Project project) {
archive = project.provider {
def archiveTask = project.tasks.withType(ShadowJar).getByName("shadowJar")
new Archive(archiveTask.archiveFile, archiveTask.archiveClassifier)
}
archiveFile = project.provider { project.tasks.withType(ShadowJar).getByName("shadowJar").archiveFile }
allDependencies = project.provider {
project.configurations.getByName("shadow").allDependencies.collect {
if ((it instanceof ProjectDependency) || !(it instanceof SelfResolvingDependency)) {
Expand All @@ -29,10 +25,7 @@ class ShadowExtension {
}

void component(MavenPublication publication) {
publication.artifact([
source : archive.get().file,
classifier: archive.get().classifier.get()
])
publication.artifact(archiveFile.get())

// Don't inline this variable, it seems Groovy closure capturing is confused by the field instead of a local variable.
final def allDeps = allDependencies
Expand All @@ -50,16 +43,6 @@ class ShadowExtension {
}
}

private class Archive {
Provider<RegularFile> file
Property<String> classifier

Archive(Provider<RegularFile> file, Property<String> classifier) {
this.file = file
this.classifier = classifier
}
}

private class Dep {
String group
String name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,54 +78,6 @@ class PublishingSpec extends PluginSpecification {
assert dependency.version.text() == '1.0'
}

def "publish shadow jar with maven-publish plugin using custom classifier and extension"() {
given:
repo.module('shadow', 'a', '1.0')
.insertFile('a.properties', 'a')
.insertFile('a2.properties', 'a2')
.publish()
repo.module('shadow', 'b', '1.0')
.insertFile('b.properties', 'b')
.publish()

settingsFile << "rootProject.name = 'maven'"
buildFile << """
apply plugin: 'maven-publish'
dependencies {
implementation 'shadow:a:1.0'
shadow 'shadow:b:1.0'
}
shadowJar {
archiveClassifier = 'my-classifier'
archiveExtension = 'my-ext'
archiveBaseName = 'maven-all'
}
publishing {
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
artifactId = 'maven-all'
}
}
repositories {
maven {
url "${publishingRepo.uri}"
}
}
}
""".stripIndent()

when:
run('publish')

then:
File publishedFile = publishingRepo.rootDir.file('shadow/maven-all/1.0/maven-all-1.0-my-classifier.my-ext').canonicalFile
assert publishedFile.exists()
}

def "publish multiproject shadow jar with maven-publish plugin"() {
given:

Expand Down

0 comments on commit 4b27ca5

Please sign in to comment.