根据操作系统修改gradle的运行时依赖性?

Wud*_*ong 7 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.
}
Run Code Online (Sandbox Code Playgroud)

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

Jer*_*ome 6

String jarName;
switch(System.getProperty('os.name').toLowerCase().split()[0]) {
  case 'windows':
    jarName = 'swt_win_32.jar' 
    break
  case 'linux':
    jarName = 'swt_linux_x86.jar' 
    break
  default:
    throw new Exception('Unknown OS')
}

dependencies {
  runtime fileTree(dir: 'swt', include: jarName)
}
Run Code Online (Sandbox Code Playgroud)