【问题标题】:How to define 2 sets of profiles in pom.xml?如何在 pom.xml 中定义 2 组配置文件?
【发布时间】: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 制作不同的模块......

标签: maven-3 pom.xml


【解决方案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 ... 

【讨论】:

    猜你喜欢
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2018-12-17
    • 1970-01-01
    • 2013-02-08
    • 2021-03-17
    • 2019-11-19
    相关资源
    最近更新 更多