私はJavaの世界とGradleが初めてです。複数のプラットフォーム (Android、Linux、および Windows) をサポートする JSerial lib を作成しました。
ターゲットとするプラットフォームを選択できるようにするために、JSerial gradle ファイルにいくつかの sourceSet を定義しました。
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'
}
デフォルトのmain
sourceSets は共通インターフェースなどを構築します。その後、windows
sourceSet は Windows 実装を構築します (Linux と Android も同様です)。
このライブラリを使用し、gradle を使用して依存するプロジェクトを作成しますincludeFlat
。私のgradleファイルの依存部分は次のとおりです。
dependencies {
compile project(':JSerial')
testCompile group: 'junit', name: 'junit', version: '4.11'
}
これは機能します。しかし、このプロジェクトは Windows アプリケーションなので、「windows」sourceSet に依存したいと思います。私は次のことを試しました:
dependencies {
compile project(':JSerial').sourceSets.windows.output
testCompile group: 'junit', name: 'junit', version: '4.11'
}
しかし、うまくいきません。次のエラーがあります。
SourceSet コンテナにプロパティ 'windows' が見つかりませんでした。
どうしたの ?
PS: sourceSets を使用せずに私が試みていることを行うためのより良い方法がある場合は、教えてください!