¿Cómo crear un Android Library Jar con gradle sin revelar públicamente el código fuente?

Me gustaría crear un Jar fuera de un proyecto de biblioteca de Android. Se configura de la siguiente manera:

ProjectName
    \- lib
    |   \- lib
    |       \- armeabi
    |           \- libNativeFirst.so
    |           \- libNativeSecond.so
    \- src
        \- main
            \- java
                \- com.package.sdk
                    \- PackageSDK.java

Me gustaría que todo esto fuera empaquetado en un Jar, pero sin revelar el código fuente presente enPackageSDK.java.

Configuré mibuild.gradle archivo así

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
}

Cuando corrogradlew clean jar en el directorio del proyecto, se crea un archivo jar enProjectName\build\libs llamadoProjectName.jar. Su estructura es la siguiente:

ProjectName.jar
    \- lib
    |   \- armeabi
    |       \- libNativeFirst.so
    |       \- libNativeSecond.so
    \- com
        \- package
            \- sdk
                \- PackageSDK.java

Me gustaría para el compiladoPackageSDK.class para ser incluido en lugar de laPackageSDK.java archivo al ejecutar eljar tarea. ¿Qué puedo cambiar para lograr esto?

Editar:

Según la sugerencia de Ben Manes, cambié la configuración de lasourceSets a lo siguiente:

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
        resources {
            srcDir 'src/../lib'
        }
        output {
            classesDir 'build/classes'
            resourcesDir 'build/javaResources'
        }
    }
}

Y eljar Tarea a lo siguiente:

task jar(type: Jar) {
    from android.sourceSets.main.output
}

Gradle ahora me está dando esta salida:

Could not find method output() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure9_closure10_closure13@138532dc] on source set main.

Respuestas a la pregunta(2)

Su respuesta a la pregunta