【发布时间】:2015-09-02 08:10:16
【问题描述】:
我是 Java 世界和 Gradle 的新手。我制作了一个支持多种平台(Android、Linux 和 Windows)的 JSerial 库。
为了能够选择我的目标平台,我在我的 JSerial gradle 文件中定义了一些源集:
sourceSets {
windows {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
linux {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}
dependencies {
linuxCompile 'net.java.dev.jna:jna:4.1.0'
linuxCompile 'net.java.dev.jna:jna-platform:4.1.0'
windowsCompile 'net.java.dev.jna:jna:4.1.0'
windowsCompile 'net.java.dev.jna:jna-platform:4.1.0'
}
默认mainsourceSets 构建通用接口等。然后windowssourceSet 将构建windows 实现(Linux 和Android 相同)。
我创建了一个项目,它使用这个库并使用 gradle 的 includeFlat 依赖它。这是我的 gradle 文件的依赖部分:
dependencies {
compile project(':JSerial')
testCompile group: 'junit', name: 'junit', version: '4.11'
}
这行得通。但我想依赖“windows”sourceSet,因为这个项目是一个windows应用程序。我尝试了以下方法:
dependencies {
compile project(':JSerial').sourceSets.windows.output
testCompile group: 'junit', name: 'junit', version: '4.11'
}
但它不起作用,我有以下错误:
在 SourceSet 容器上找不到属性“windows”。
怎么了?
PS:如果有更好的方法可以在不使用 sourceSets 的情况下做我正在尝试的事情,请告诉我!
【问题讨论】:
-
我正在尝试寻找基于
project(path: ':Jserial', configuration: 'customConfig')的解决方案,但目前不起作用。
标签: java gradle source-sets