【发布时间】:2017-07-27 20:36:31
【问题描述】:
我正在开发一个依赖于 SWT 的项目。它使用 Maven 作为构建工具和依赖管理系统。因为 SWT 是平台依赖的,所以我需要告诉 Maven 应该使用哪个平台的依赖。
Maven 配置文件通常用于根据 os.family 和 os.arch 属性有条件地包含依赖项,如下所示:
<profiles>
<profile>
<id>Linux-x86</id>
<activation>
<os>
<family>linux</family>
<arch>i386</arch>
</os>
</activation>
<dependencies>
<dependency>
<!-- some platform-specific dependency goes here -->
</dependency>
</dependencies>
</profile>
</profiles>
问题在于 os.arch 可能有几个不同的值 - “i386”、“i486”、“i586”等,但在 SWT 世界中,它们都映射到“x86” .
是否有可能在 Maven 中指定一个互斥的值列表(在我的精确情况下为 os.arch)作为条件,而无需为每个值创建单独的配置文件?
【问题讨论】:
-
据我所知,您可以构建一个包含不同平台/架构等的产品,并在适当的平台上启动该产品将自动选择正确的工件.. ? OSGi ?
-
您对它在实践中的工作方式有任何进一步的详细信息吗?有什么例子吗?提前致谢!
标签: maven dependencies platform-specific