【发布时间】:2022-01-15 07:10:05
【问题描述】:
我正在尝试使用 ProGuard 最小化我的 gradle 插件,它运行良好,生成输出文件 a-min.jar
但是,com.gradle.plugin-publish 插件在使用任务publishPlugins 时无法识别它,它告诉
无法确定要上传的主要工件 - 找不到带有空分类器的 jar 工件
奇怪的是,当使用publishToMavenLocal 时,它确实工作得很好。
我尝试了一些技巧来用我处理过的 jar 替换主 jar,但总是失败。这里有什么新景象吗?
afterEvaluate {
publishing {
publications {
withType<MavenPublication> {
if (name == "pluginMaven") {
setArtifacts(listOf(
artifact(minJarPath){
classifier = ""
extension = "jar"
}
))
}
}
}
}
}
我尝试反编译com.gradle.plugin-publish:0.18.0,得到了这个
private File findMainArtifact() {
if (this.useAutomatedPublishing) {
for (UsageContext variant : this.javaRuntimeVariants) {
for (PublishArtifact artifact : variant.getArtifacts()) {
if (Util.isBlank(artifact.getClassifier()) && "jar".equals(artifact.getExtension()))
return artifact.getFile();
}
}
} else {
Configuration archivesConfiguration = getProject().getConfigurations().getByName("archives");
for (PublishArtifact artifact : archivesConfiguration.getAllArtifacts()) {
if (Util.isBlank(artifact.getClassifier()) && "jar".equals(artifact.getExtension()))
return artifact.getFile();
}
}
throw new IllegalArgumentException("Cannot determine main artifact to upload - could not find jar artifact with empty classifier");
}
但我不知道如何将工件添加到“AllArtifacts”。
【问题讨论】:
标签: java gradle gradle-plugin