AndroidStudio打jar包(包含META-INF檔案)
task makeJar(type: org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName 'smarter'
//從哪裡打包class檔案
from('build/intermediates/classes/debug/com/smarter/mylibrary')
//打包到jar後的目錄結構
into('com/smarter/mylibrary/')
//去掉不需要打包的目錄和檔案
exclude('BuildConfig.class', 'R.class')
//去掉R$開頭的檔案
exclude { it.name.startsWith('R$'); }
//此段程式碼將相關資訊寫到META-INF檔案中的MANEFEST.MF檔案
manifest {
attributes(
'Implementation-Title': "${project.name}",
//'Implementation-Version': "${version}",
'Implementation-Version': "2.0",
'Built-Date': new Date().getDateTimeString(),
'Built-With':
"gradle-${project.getGradle().getGradleVersion()},groovy-${GroovySystem.getVersion()}",
'Created-By':
'Java ' + System.getProperty('java.version') + ' (' + System.getProperty('java.vendor') + ')')
}
}
makeJar.dependsOn(clearJar, build)