如何在 pom.xml 中定义 2 组配置文件?
Posted
技术标签:
【中文标题】如何在 pom.xml 中定义 2 组配置文件?【英文标题】:How to define 2 sets of profiles in pom.xml? 【发布时间】:2022-01-05 21:58:11 【问题描述】:我需要在我的 pom.xml 中有一个二维配置文件组织。
该项目是关于一个有不同风格的胖客户端应用程序。每种风格都有一组略有不同的依赖项、内部化文件、启动屏幕,...... 这是配置文件的一个维度。
我还为不同的操作系统构建应用程序:windows、linux、mac。 这是轮廓的第二维。有些东西必须根据目标进行更改(例如,对于 windows,我构建一个 ZIP 文件,而对于 linux 和 mac,我构建一个 TAR.GZ 文件)
我解决这个问题的方法是使用 pom.xml 配置文件作为风格,并使用 .m2/settings.xml 配置文件作为 os 目标。 它有效,但它并不好。因为 .m2/settings.xml 应该仅限于特定于用户的配置,并且不包含“构建逻辑”。
我想将我将 .m2/settings.xml 放入 pom.xml 的“构建逻辑”“转移”。 但我不希望有 1 个配置文件级别具有 (#Flavours x #Os) 配置文件(例如 flavor1-os1、flavour1-os2、...)
这可以实现吗?有没有办法在 pom.xml 中实现这 2 个级别的配置文件?
【问题讨论】:
操作系统之间的区别是什么?你有写资源和依赖吗?所以在你的构建中使用不同的 deps 制作不同的模块...... 【参考方案1】:为每种口味声明一个配置文件:
<profile>
<id>flav1</id>
...
</profile>
<profile>
<id>flav2</id>
...
</profile>
<profile>
<id>flav3</id>
...
</profile>
每个操作系统一个:
<profile>
<id>win</id>
...
</profile>
<profile>
<id>linux</id>
...
</profile>
<profile>
<id>mac</id>
...
</profile>
Activate them 单独通过例如:
mvn -P flav1, linux ...
【讨论】:
以上是关于如何在 pom.xml 中定义 2 组配置文件?的主要内容,如果未能解决你的问题,请参考以下文章