将 Maven parent pom/bom(没有 java src)发布到 Nexus 的正确方法是什么

What is the correct way to release Maven parent pom/bom (with no java src) to Nexus

我正在为自己制作一组标准库,(常用数据结构、服务和其他实用程序)我经常使用并最终重新定义。

因为我不是每次都需要所有东西,所以我设置了一个 BOM 项目和其他离散模块,这样我就可以只在需要时拉入我需要的东西。

我 运行 遇到的问题是我的 BOM 模块。当我 运行 一个 mvn packagemvn release 相关命令时,我的父 pom 和 bom pom 失败。

[ERROR] error: source file or directory not found: /Users/paul.baker/projects/personal/paulbaker-common-libs/src/main/java
[ERROR] warning: classpath entry points to a non-existent location: /Users/paul.baker/projects/personal/paulbaker-common-libs/target/classes

这个错误在一定程度上是有道理的。它告诉我找不到这些模块的源代码,但它们不打算拥有 java 源代码。它们应该只是 POM 文件(它们已通过 <packaging>pom</packaging> 设置)。

我似乎缺少一些配置,但我似乎找不到要设置的正确标志。

项目结构为:

parent
- bom
- data-structures
- aws-data-structures
- aws-data-service

但这是 relevant git repository,以防我忽略了更多需要的细节。

看着BOM for Spring Framework 5.1.4.RELEASE<packaging>pom</packaging>就够了

您的问题来自于在根 pom.xml 中声明非标准插件,例如dokka-maven-pluginmaven-gpg-plugin。这些插件由 bom 模块继承,但在当前配置中不支持 <packaging>pom</packaging>,因此无法执行。标准 Maven 插件开箱即用。

要么您必须将这些插件移到根 pom.xml 之外,要么必须在 bom 模块中禁用它们。