Android project packaging jar, production SDK for others to use, applicable to android studio 3.6.x

2. To be packaged is the module in the project

Create a new gradle file "tojar", at the same level as module build.gradle. As shown below

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

 

Guess you like

Origin blog.csdn.net/qq_36355271/article/details/105683268