Gradle 发布到 Maven 添加了一个似乎不适用于 Maven POM 依赖项的后缀

Posted

技术标签:

【中文标题】Gradle 发布到 Maven 添加了一个似乎不适用于 Maven POM 依赖项的后缀【英文标题】:Gradle publishing to Maven adds a suffix that does not seem to work from Maven POM dependencies 【发布时间】:2021-10-31 03:29:15 【问题描述】:

当我从 Gradle 项目发布到本地 maven 存储库时,我发现主 JAR 文件有一个 -plain 后缀。

pdffer/pdffer-template/1.0-SNAPSHOT 
➜ ll
total 32
-rw-r--r--  1 fedmest  staff   918B Sep  1 16:39 maven-metadata-local.xml
-rw-r--r--  1 fedmest  staff   3.8K Sep  1 16:39 pdffer-template-1.0-SNAPSHOT-plain.jar
-rw-r--r--  1 fedmest  staff   1.9K Sep  1 16:39 pdffer-template-1.0-SNAPSHOT.module
-rw-r--r--  1 fedmest  staff   1.7K Sep  1 16:39 pdffer-template-1.0-SNAPSHOT.pom

当我将此库作为 POM 文件中的 Maven 依赖项包含在内时,它无法找到它 - 只有当我重命名主 JAR 以排除 -plain 后缀时它才有效。我可以让 Gradle 生成没有后缀的 JAR 吗?知道为什么会出现后缀吗?

【问题讨论】:

要获得工件-plain,您必须在您的依赖项中定义一个分类器<classifier>plain</classifier>...问题是为什么它是用分类器生成的...... 好问题,我不知道它来自哪里......我没有有意识地在我的 gradle.build 中配置它 我注意到并不是我所有的项目都有这个问题。那些使用以下插件的插件:'org.springframework.boot'版本'2.5.3'和'io.spring.dependency-management'版本'1.0.11.RELEASE'。他们可以应用此更改吗?有人知道如何撤消吗? @fedmest,我遇到了同样的事情......你有没有机会知道根本原因或解决方案? 【参考方案1】:

要禁用“普通”,请遵循 springboot 文档: https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#packaging-executable.and-plain-archives

jar 
    classifier = ''

我也在这里找到了答案: https://***.com/a/67752182/11723872

【讨论】:

以上是关于Gradle 发布到 Maven 添加了一个似乎不适用于 Maven POM 依赖项的后缀的主要内容,如果未能解决你的问题,请参考以下文章

将 maven 存储库添加到 build.gradle

Gradle 对应于 Maven 原型?

Maven:如何使用 build.gradle 文件?

将 AndroidAnnotations Maven 设置适配到 Gradle

Android Gradle 插件自定义 Gradle 插件模块 ③ ( Gradle 插件模块发布配置 | Windows 本地 Maven 仓库地址 | 将插件上传到本地 Maven 仓库 )

如何在 Maven 项目中自动接受 Gradle Build Scan ToS?