通常在pom.xml里我们可以像对其他类库一样为项目引入SWT依赖:
<dependency> <groupId>org.eclipse.swt</groupId> <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId> <version>4.3</version> </dependency>
但是SWT特殊在于,不同平台(platform)下需要使用不同的artifactId,例如上面的代码只适用于windows开发环境,在linux环境下可以编译但无法运行。
好在Maven支持根据os.family定义不同的属性值,所以我们可以像下面这样定义两个profile,然后让Maven自动选择合适的artifactId:
<profiles> <profile> <id>os_linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <swt-artifactId>org.eclipse.swt.gtk.linux.x86_64</swt-artifactId> </properties> </profile> <profile> <id>os_windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <swt-artifactId>org.eclipse.swt.win32.win32.x86_64</swt-artifactId> </properties> </profile> </profiles> <dependency> <groupId>org.eclipse.swt</groupId> <artifactId>${swt-artifactId}</artifactId> <version>4.3</version> </dependency>
参考链接:
- maven project: SWT 3.5 dependency: any official public repo?
- Values for os.family in Maven profile activation condition
欢迎转载
请保留原始链接:https://bjzhanghao.com/p/400
请保留原始链接:https://bjzhanghao.com/p/400