我有一个可能与此非常相似的问题。我需要解决我想象中的一个非常常见的问题——如何配置 Maven 以在同一个工件上产生多个变体——但我还没有找到一个好的解决方案。
我有一个多模块项目,最终导致assembly
插件生成工件。但是,部分程序集包括最近发生了重大变化的库,结果项目的一些使用者需要库版本 N,而其他人需要版本 N+1。理想情况下,我们会自动生成多个工件,例如theproject-1.2.3.thelib-1.0.tar.gz
,theproject-1.2.3.thelib-1.1.tar.gz
等(这是我们项目的 1.2.3 版本,针对库版本 1.0 或 1.1 运行)。
现在,我有一堆默认属性,它们针对最新版本的相关库构建,以及针对旧版本构建的配置文件。我可以以这种方式部署一种或另一种,但不能在一个构建中同时部署两者。这是与上述问题不同的关键问题:我无法在插件内部自动化 build-one-clean-build-the-other。release
通常,我们会mvn release:prepare release:perform
从多模块项目的根目录开始负责将所有内容部署到我们内部的 Nexus。但是,在这种情况下,我们必须选择一个——要么运行旧的库配置文件,要么不运行并获取新的配置文件。我需要发布插件来部署两者。这是不可能的吗?我不得不想象我们不是第一个想让我们的自动化构建生成对不同平台的支持的人......