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

标签 java maven maven-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-pluginmaven-gpg-plugin 。这些插件由bom继承。模块但不支持<packaging>pom</packaging>在当前配置中,因此它们无法执行。标准 Maven 插件开箱即用。

您必须将这些插件移到根目录之外 pom.xml或者必须在 bom 中禁用它们模块。

关于java - 将 Maven 父 pom/bom (没有 java src)发布到 Nexus 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54298409/

相关文章:

java - RoboSpice 和 ORMLite - 访问数据

mysql - 如何使用 sql-maven-plugin 创建 SQL 转储

android - 使用 Material list 时如何使库传递依赖项显示在应用程序中?

spring - Maven BOM用于解决Spring + Spring Data + Spring Security的依赖?

java - 无法对批处理创建的文件执行任何操作

java - eclipse 样式工具提示库?

java - 使用哪种数据结构或算法来安排字典数据以进行序列搜索?

java - pom.xml Maven 配置以在混合 Java + Kotlin 项目中运行 JUnit 4 + JUnit 5 Jupiter 测试

testing - 使用给定目录的输入运行特定程序的脚本

java - 在 Maven Material list (BOM) 的单个条目中设置所有 Maven 子模块的版本