【发布时间】:2011-06-15 23:32:33
【问题描述】:
我有一个可能与this 非常相似的问题。我需要解决我想象中的一个非常常见的问题——如何配置 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 运行)。
现在,我有一堆默认属性,它们针对最新版本的相关库构建,以及针对旧版本构建的配置文件。我可以通过这种方式部署一种或另一种,但不能在一个构建中同时部署这两种方式。这是与上述问题不同的关键问题:我无法自动化 release 插件的 build-one-clean-build-the-other inside。
通常,我们会从多模块项目的根目录中mvn release:prepare release:perform 负责将所有内容部署到我们的内部 Nexus。但是,在这种情况下,我们必须选择一个——要么运行旧的库配置文件,要么不运行并获取新的配置文件。我需要发布插件来部署both。这是不可能的吗?我不得不想象我们不是第一个希望我们的自动化构建生成对不同平台的支持的人......
【问题讨论】:
标签: maven maven-assembly-plugin multiplatform