AndroidStudio打jar包(包含META-INF文件)
来源:互联网 发布:手机扫描文档软件 编辑:程序博客网 时间:2024/06/05 15:02
最近在研究sdk的开发,遇到了AndroidStudio打jar的问题,,,执行打jar包的操作我们都可以生成一个jar包,但是这个jar包里面的呈现内容 和 eclipse打jar包的呈现内容是不是一样呢,有三种执行操作,但是打的jar包内容不同(eclipse 打jar包非常简单)
//1.此种打包方式 jar包没有META-INF文件 不会存在
task makeJar(type: Copy) {
delete 'build/libs/demo.jar'
from('build/intermediates/bundles/default/')
into('build/libs/')
include('classes.jar')
task makeJar(type: Copy) {
delete 'build/libs/demo.jar'
from('build/intermediates/bundles/default/')
into('build/libs/')
include('classes.jar')
rename('classes.jar', 'smarters.jar')
}
}
makeJar.dependsOn(build)
//2.此种方式打包 会将META-INF文件 放在包名下 即:包 包含 META-INF文件
task clearJar(type: Delete) {
delete 'build/libs/smarter.jar'
delete 'libs/smarter.jar'
}
task clearJar(type: Delete) {
delete 'build/libs/smarter.jar'
delete 'libs/smarter.jar'
}
//打包任务
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)
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)
强烈建议此种方式打jar包 与eclipse打的 jar包 一模一样
//3.META-INF文件 与 包文件 并列(与eclipse打包之后的 jar包目录方式一致)
task jarMyLib(type: Jar, dependsOn: ['build']) {
archiveName = 'smarter.jar'
from('build/intermediates/classes/release')
destinationDir = file('build/libs')
exclude('android')//去掉android这个文件夹
exclude('com/smarter/mylibrary/BuildConfig.class')
exclude('com/smarter/mylibrary/BuildConfig\$*.class')
exclude('**/R.class')
exclude('**/R\$*.class')
task jarMyLib(type: Jar, dependsOn: ['build']) {
archiveName = 'smarter.jar'
from('build/intermediates/classes/release')
destinationDir = file('build/libs')
exclude('android')//去掉android这个文件夹
exclude('com/smarter/mylibrary/BuildConfig.class')
exclude('com/smarter/mylibrary/BuildConfig\$*.class')
exclude('**/R.class')
exclude('**/R\$*.class')
manifest {
attributes(
'Implementation-Title': "${project.name}",
'Implementation-Version': "${version}",
'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') + ')')
}
}
attributes(
'Implementation-Title': "${project.name}",
'Implementation-Version': "${version}",
'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') + ')')
}
}
阅读全文
0 0
- AndroidStudio打jar包(包含META-INF文件)
- AndroidStudio 打jar包
- AndroidStudio 打Jar包
- Matlab 打jar包(包含外部文件)
- 利用maven插件打jar包时自定义Class-path到META-INF
- jar包详解和META-INF作用(转)
- AndroidStudio如何打JAR包
- jar包详解和META-INF作用
- jar包详解和META-INF作用
- jar包详解和META-INF作用
- 生成Jar包META-INF配置
- jar包详解和META-INF作用
- Jar包详解和META-INF作用
- JAR文件中的META-INF文件夹
- 解决两个jar包中META-INF文件内容重复的bug
- AndroidStudio给Unity打jar包
- AndroidStudio中打jar包-异常日志
- AndroidStudio给Unity打jar包
- Android 使用opencv实现抠图
- POJ3414-Pots
- 细解spring mvc架构
- oracle入门基础语法
- centos7之RPM安装MySQL5.5.48
- AndroidStudio打jar包(包含META-INF文件)
- u-boot串口和stdio、console初始化及相关操作详解<一>
- python: dict(字典) 操作
- 【备忘】Python编程高级进阶视频教程
- 数据结构实验报告(六)
- 运送超级计算机 最大流
- 【2017.12.9】7.Reverse Integer 翻转整数
- IFE-2017学习笔记的简介
- [LeetCode]Find Pivot