如何使用 maven-publish 和 shadow 插件重命名使用 Gradle 发布的 jar 文件?
How to rename jar file that's being published using Gradle with maven-publish and shadow plugins?
基本上我想做的是将一个 jar 文件发布到具有特定名称的 GitHub 包。我现在拥有的是:
shadowJar {
archiveFileName = "Some-Name-${parent.version}.${extension}"
}
publishing {
...
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
artifactId = 'me.project'
groupId = 'some-project'
version = 1.1.0
}
}
}
但由此我得到 some-project-1.1.0-all.jar
,我想得到 some-project-1.1.0.jar
但似乎找不到方法。在 shadowJar
任务中更改 archiveFileName
似乎不会影响 publishing
jar,只会影响 build
jar。
我认为您需要更改 shadowJar
任务的 archiveClassifier
。默认情况下,这配置为 all
.
- 第 5 点:https://github.com/johnrengelman/shadow/blob/master/src/docs/getting-started/README.md#default-javagroovy-tasks
- https://github.com/johnrengelman/shadow/blob/7.0.0/src/main/groovy/com/github/jengelman/gradle/plugins/shadow/ShadowJavaPlugin.groovy#L66
类似于:
tasks.shadowJar {
archiveClassifier = ""
}
shadowJar
任务 extends of the Jar
task type. By default, with the Java plugin,archiveClassifier
配置为空字符串 ""
。 Shadow 插件将其 shadowJar
任务重新配置为 all
.
基本上我想做的是将一个 jar 文件发布到具有特定名称的 GitHub 包。我现在拥有的是:
shadowJar {
archiveFileName = "Some-Name-${parent.version}.${extension}"
}
publishing {
...
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
artifactId = 'me.project'
groupId = 'some-project'
version = 1.1.0
}
}
}
但由此我得到 some-project-1.1.0-all.jar
,我想得到 some-project-1.1.0.jar
但似乎找不到方法。在 shadowJar
任务中更改 archiveFileName
似乎不会影响 publishing
jar,只会影响 build
jar。
我认为您需要更改 shadowJar
任务的 archiveClassifier
。默认情况下,这配置为 all
.
- 第 5 点:https://github.com/johnrengelman/shadow/blob/master/src/docs/getting-started/README.md#default-javagroovy-tasks
- https://github.com/johnrengelman/shadow/blob/7.0.0/src/main/groovy/com/github/jengelman/gradle/plugins/shadow/ShadowJavaPlugin.groovy#L66
类似于:
tasks.shadowJar {
archiveClassifier = ""
}
shadowJar
任务 extends of the Jar
task type. By default, with the Java plugin,archiveClassifier
配置为空字符串 ""
。 Shadow 插件将其 shadowJar
任务重新配置为 all
.