对此有一个先前的答案,但我认为接受的答案不正确
我创建了一个 Maven 插件,它根据版本的某些方面以编程方式“摆弄”<repositories>
和<distributionManagement>
配置(因此,如果版本附加了分支名称,即 1.0.0-RC1)。这允许在功能分支构建中使用单独的 Nexus 存储库,而无需在合并回 int 之前修改 POM。
我不能只更改分支构建上的 groupId,因为这是一个 OSGi 项目,并且 groupId 必须理想地匹配源包。
问题是在依赖解析之前运行的 Maven 生命周期中似乎没有任何部分。因此,<repository>
永远不会配置提供正确分辨率的目标,因此 Maven 只是抱怨它无法解决。
链接的答案表明“干净”在解决之前运行,但似乎并非如此。如果我将目标配置为具有“清理”或“验证”的默认阶段,则解决方案似乎仍会首先发生。
我可以让我的插件目标在依赖解析之前运行吗?
编辑:这似乎无法完成。我认为这需要在 Maven 中修复。在依赖解析之前,应该有地方运行需要“项目”的插件,而不必深入研究 Plexus。这将允许在后续解析期间使用的存储库列表的动态配置。大概这需要在 EventDispatcher 实现中的某处进行更改(我注意到已弃用?)。