将 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 package
或 mvn 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-plugin
或 maven-gpg-plugin
。这些插件由 bom
模块继承,但在当前配置中不支持 <packaging>pom</packaging>
,因此无法执行。标准 Maven 插件开箱即用。
要么您必须将这些插件移到根 pom.xml
之外,要么必须在 bom
模块中禁用它们。
我正在为自己制作一组标准库,(常用数据结构、服务和其他实用程序)我经常使用并最终重新定义。
因为我不是每次都需要所有东西,所以我设置了一个 BOM 项目和其他离散模块,这样我就可以只在需要时拉入我需要的东西。
我 运行 遇到的问题是我的 BOM 模块。当我 运行 一个 mvn package
或 mvn 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-plugin
或 maven-gpg-plugin
。这些插件由 bom
模块继承,但在当前配置中不支持 <packaging>pom</packaging>
,因此无法执行。标准 Maven 插件开箱即用。
要么您必须将这些插件移到根 pom.xml
之外,要么必须在 bom
模块中禁用它们。