Maven:如何组装具有多个环境的捆绑包

Posted

技术标签:

【中文标题】Maven:如何组装具有多个环境的捆绑包【英文标题】:Maven: how to assemble a bundle with multiple environments 【发布时间】:2014-03-25 09:22:57 【问题描述】:

我想组装一个大包,其中包含一些常见的二进制文件和配置设置以及特定于环境的东西。

例如:

* lib
* bin
* conf
* env -> uat1 -> conf
* env -> uat2 -> conf
* env -> uat3 -> conf
* env -> uat4 -> conf

只要特定环境中包含的文件集不重叠,就可以使用 Maven 组件轻松完成。

例如,如果我有:

uat1: file_alpha, file_beta, file_uat1
uat2: file_alpha, file_beta, file_uat2
uat3: file_delta, file_gamma, file_uat3
uat4: file_delta, file_gamma, file_uat4

我想在单个文件中配置通用文件集。例如。 (至于文件集):

uat1uat2: file_alpha, file_beta
uat1: [uat1uat2], file_uat1
uat2: [uat1uat2], file_uat2
uat3uat4: file_delta, file_gamma
uat3: [uat3uat4], file_uat3
uat4: [uat3uat4], file_uat4

不幸的是,我发现 Maven 不支持子组件或参数化组件(对于 uat1,我将文件放入 /env/uat1/conf,对于 uat2,我将文件放入 /env/uat2/conf)。

什么是解决我的部署需求的解决方案?

【问题讨论】:

【参考方案1】:

不确定我是否完全理解你的问题,所以这里只回答一半。

我使用这个迭代器插件来捆绑我的环境。也许它可以帮助你?

http://khmarbaise.github.io/iterator-maven-plugin/

【讨论】:

以上是关于Maven:如何组装具有多个环境的捆绑包的主要内容,如果未能解决你的问题,请参考以下文章

使用firebase iOS swift创建具有相同捆绑ID的多个环境?

适用于 iOS 应用程序的具有多个捆绑标识符的 URL 类型

错误 ITMS-90685:“CFBundleIdentifier 冲突。有多个捆绑包”

如何设置捆绑开发环境(Eclipse Equinox Maven)

如何在捆绑包之外配置多个 orm 映射原则

使用 Maven 的具有多个子项目的 Spring MVC 项目的包结构