Я хотел бы создать Jar из проекта библиотеки Android. Он настраивается следующим образом:
ProjectName
    \- lib
    |   \- lib
    |       \- armeabi
    |           \- libNativeFirst.so
    |           \- libNativeSecond.so
    \- src
        \- main
            \- java
                \- com.package.sdk
                    \- PackageSDK.java
Я бы хотел, чтобы все это было упаковано в Jar, но не обнаружило исходный код, присутствующий в PackageSDK.java.
Я установил свой файл build.gradle следующим образом:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android-library'
repositories {
    mavenCentral()
}
android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"
    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
    sourceSets {
        main {
            java {
                srcDir 'src/main/java'
            }
            resources {
                srcDir 'src/../lib'
            }
        }
    }
}
task jar(type: Jar) {
    from android.sourceSets.main.allSource
}
Когда я запускаю gradlew clean jar в каталоге проекта, файл Jar создается в ProjectName\build\libs, называемом ProjectName.jar. Его структура выглядит следующим образом:
ProjectName.jar
    \- lib
    |   \- armeabi
    |       \- libNativeFirst.so
    |       \- libNativeSecond.so
    \- com
        \- package
            \- sdk
                \- PackageSDK.java
Я хотел бы, чтобы скомпилированный PackageSDK.class был включен вместо файла PackageSDK.java при выполнении задачи jar. Что я могу изменить для достижения этого?
Изменить:
В предложении Бена Манеса я изменил конфигурацию sourceSets на следующее:
sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
        resources {
            srcDir 'src/../lib'
        }
        output {
            classesDir 'build/classes'
            resourcesDir 'build/javaResources'
        }
    }
}
И задача jar:
task jar(type: Jar) {
    from android.sourceSets.main.output
}
Gradle теперь дает мне этот результат:
 Could not find method output() for arguments [build_25r1m0[email protected]138532dc] on source set main.
