我正在为自己制作一套标准库(通用数据结构、服务和其他实用程序),我经常使用并最终重新定义。
由于我不需要每次都需要所有东西,因此我设置了一个 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
中禁用它们模块。
关于java - 将 Maven 父 pom/bom (没有 java src)发布到 Nexus 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54298409/