是否可以根据操作系统的内容更改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.
}
希望这个问题有意义。感谢。
答案 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