Java 修改gradle';根据操作系统的运行时依赖关系?

Java 修改gradle';根据操作系统的运行时依赖关系?,java,groovy,gradle,Java,Groovy,Gradle,是否可以根据gradle所在的操作系统更改其运行时依赖关系 我在我的应用程序中使用SWT,它具有依赖于平台的JAR。我只想为它运行的每个平台分发正确的SWT jar。比如: dependencies { runtime fileTree(dir: 'swt', include: 'swt_win_32.jar') if windows. runtime fileTree(dir: 'swt', include: 'swt_linux_x86.jar') if linux. }

是否可以根据gradle所在的操作系统更改其运行时依赖关系

我在我的应用程序中使用SWT,它具有依赖于平台的JAR。我只想为它运行的每个平台分发正确的SWT jar。比如:

dependencies {
    runtime fileTree(dir: 'swt', include: 'swt_win_32.jar') if windows.
    runtime fileTree(dir: 'swt', include: 'swt_linux_x86.jar') if linux.
}

希望这个问题有意义。谢谢。

Gradle没有用于检查操作系统的公共API,但是您可以使用类似System.getProperty(“OS.name”)的东西,并相应地采取行动(例如使用一个简单的if语句)。

如果您想用一种更渐进的方式来做,您可以使用 Gradle操作系统插件。

该插件有一个专门用于此目的的插件

apply plugin: 'com.diffplug.gradle.eclipse.mavencentral'
eclipseMavenCentral {
  release '4.7.0', {
    compile 'org.eclipse.swt'
    useNativesForRunningPlatform()
  }
}
apply plugin: 'com.diffplug.gradle.eclipse.mavencentral'
eclipseMavenCentral {
  release '4.7.0', {
    compile 'org.eclipse.swt'
    useNativesForRunningPlatform()
  }
}