Build配置文件gradle.build中添加以下taskhtml
task clearJar(type: Delete) { delete 'build/outputs/mylib.jar' } task copyJar(type: Copy) { from('build/intermediates/bundles/release/') into('build/outputs/libs/') include('classes.jar') rename ('classes.jar', 'mylib.jar') } copyJar.dependsOn(clearJar, build)
此方法是直接從把gradle build生成的classes.jar拷貝到指定目錄而且重命名,必須依賴build task。java
因爲目前gradle的」com.android.application/library」不能和」java」 plugin同時使用,因此咱們可使用其餘方法來修改,本文中使用python的zipfile來處理。python
文件內容以下:linux
Manifest-Version: 1.0 Gradle-Version: 2.2.1 Created-By: 1.8.0_20-b26 (Oracle Corporation) Date: 2015-4-15 Author: Leo.Kang jar-version: 1.0.0
例如:新建一個python腳本,命名爲updateJarManifest.pyandroid
#!/usr/bin/python import sys,zipfile,shutil,os def generate(): jar_file = "./mylib_temp.jar" target_jar = os.path.dirname(jar_file)+"/mylib.jar" shutil.copy(jar_file, target_jar) zipped = zipfile.ZipFile(target_jar, 'a', zipfile.ZIP_DEFLATED) content_file = "META-INF/MANIFEST.MF" mf_file = "./MANIFEST.MF" zipped.write(mf_file, content_file) zipped.close() return target_jar generate()
新建一個文件命名updateJar.bat文件內容爲python updateJarManifest.pyshell
新建一個文件命名爲:updateJar.sh,api
文件內容爲:bash
#!/bin/bash #@author Leo.Kang # 2015-4-15 20:47 python ./ updateJarManifest.py
task clearJar(type: Delete) { delete 'build/outputs/mylib.jar' } task copyJar(type: Copy) { from('build/intermediates/bundles/release/') into('build/outputs/libs/') include('classes.jar') rename ('classes.jar', 'mylib_temp.jar') } copyJar.dependsOn(clearJar, build) releaseJar.dependsOn(clearJar, build) task execPython(type:Exec) { //workingDir file('./') commandLine './updateJar.sh' } execPython.dependsOn(releaseJar)
http://gradle.org/docs/current/dsl/org.gradle.api.tasks.Exec.htmlapp