Androidプロジェクトはjarをパッケージ化し、sdkを生産して他の人に使用させるにはandroid studio 3.6を適用することができる.x

1756 ワード

2、パッケージするのはプロジェクトのmoduleです
新しいgradleファイル「tojar」をmodule buildと作成します.gradle同級以下の図
def jarName = "utils1.0"

//Copy  ,  Terminal   gradlew makeJar
task makeJar(type: Copy) {
    //     
    delete 'build/libs/' + jarName + ".jar"
    //       
    from("build/intermediates/aar_main_jar/debug")
    //  jar       , classes.jar  build/libs/   
    into('build/libs/')
    //    jar  
    include('classes.jar')
    //   
    rename('classes.jar', jarName + ".jar")
}
makeJar.dependsOn(build)

//-encoding UTF-8  -charset UTF-8
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

//   jar  sourcesJar,     。
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
    archiveName = jarName + '-sources.jar'
}

//  jarDoc task,     。
task javadoc(type: Javadoc) {
    failOnError false
    source = android.sourceSets.main.java.srcDirs
    options.encoding = "UTF-8"
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    classpath += configurations.compile
}

//   javaDoc jar,     。
task javadocJar(type: Jar, dependsOn: javadoc) {
    group = 'jar'
    classifier = 'javadoc'
    from javadoc.destinationDir
    archiveName = jarName + '-javadoc.jar'
}

task generateJavadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    ext.cp = android.libraryVariants.collect { variant ->
        variant.javaCompile.classpath.files
    }
    classpath = files(ext.cp)
}
artifacts {
    archives sourcesJar
    archives javadocJar
}

 
apply from: 'toJar.gradle'
gradle makeJar