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

时间:2012-01-09 23:23:52

标签: 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.
}

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

4 个答案:

答案 0 :(得分: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)
}

答案 1 :(得分:3)

Gradle没有用于检查操作系统的公共API,但您可以使用类似System.getProperty(“os.name”)的内容并采取相应的操作(例如使用简单的if语句)。

答案 2 :(得分:0)

如果您想使用更多的Gradle-ish方式,您可以使用 Gradle OS插件。 https://bitbucket.org/tinhtruong/gradle-os-plugin

答案 3 :(得分:0)

goomph插件专门用于此目的的mavencentral插件。

Traceback (most recent call last):
File "C:\Users\Lucas Diehl\Desktop\matplotlibgg.py", line 44, in <module>
threshold(iar3)
File "C:\Users\Lucas Diehl\Desktop\matplotlibgg.py", line 29, in threshold
eachPix[3] = 255
IndexError: index 3 is out of bounds for axis 0 with size 3
Traceback (most recent call last):
File "C:\Users\Lucas Diehl\Desktop\matplotlibgg.py", line 44, in <module>
threshold(iar3)
File "C:\Users\Lucas Diehl\Desktop\matplotlibgg.py", line 29, in threshold
eachPix[3] = 255
IndexError: index 3 is out of bounds for axis 0 with size 3