对此有很多封闭的问题,但没有一个得到解决或过时/过时。
问题:
我需要/很想在运行时构建单一多平台JAR OS依赖。有问题的依赖关系是SWT。到目前为止,我一直使用以下命令:http://mchr3k.github.io/swtjar/,但是由于Java 9删除了此处使用的某些方法,因此这不是可行的面向未来的选项。
我尝试使用配置文件,但这仅对不同的jar有效,这取决于您在哪里构建程序。我实际上使用maven-assembly-plugin来构建jar,但这与swt之类的库的OS相关性没有关系
约束: 我更愿意使用Maven来实现这一点,但是如果我必须回去蚂蚁,我会很乐意这样做。
我现在的个人资料:
<profiles>
<profile>
<id>swt-unix</id>
<activation>
<os>
<family>unix</family>
</os>
</activation>
<properties>
<swt.artifactId>org.eclipse.swt.gtk.linux.x86_64</swt.artifactId>
<env>linux</env>
</properties>
<dependencies>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
<version>3.108.0</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
<profile>
<id>swt-windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<swt.artifactId>org.eclipse.swt.win32.win32.x86_64</swt.artifactId>
<env>windows</env>
</properties>
<dependencies>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
<version>3.108.0</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
</profiles>
欢迎所有帮助!