有人问我
AndroidStudio怎么打包出jar文件。
通常我们AndroidStudio项目中里面包括了一个library,在library对应的build/intermediates/bundles/release/classes.jar。这个classes.jar就是library对应的jar文件。
ps:library对应的aar文件在build/outputs/aar/xxx.aar
下面我们直奔主题。
如何打包jar
我只想要对应的class文件打包进一个jar。
这里我们用到jar命令
jar cvf AAA.jar -C BBB/ .
意思就是把BBB目录下的所有class文件都打包进AAA这个jar。
在build/intermediates/classes/release/里面有library生成的所有class文件。
所以我们只要打包这个文件夹下的所有class文件就好了
在对应的module或者库的build.gradle文件下,手写task,比如以下
/*生成jar包名*/
def JAR_NAME="AAA.jar";
/*生成jar文件夹路径*/
def TARGET_FOLDER="build/"
/*包含class文件的路径*/
def CLASS_FOLDER="build/intermediates/classes/release/"
/*执行命令jar cvf xx.jar -C xxx/ . */
def makeJar(String target,String classDir){
exec{
executable "jar"
args "cvf",target
args "-C",classDir
args " ","."
}
}
task buildJarTask(dependsOn:['build'])<<{
makeJar(TARGET_FOLDER+JAR_NAME,CLASS_FOLDER)
}
/*
在终端项目根目录执行gradle buildJarTask*/
如果是window下,我们还可以写一个bat脚本,然后把脚本放在build/intermediates/classes根目录下,双击bat文件执行命令。
@ECHO OFF
Echo Auto-Jar Created By ppjun
Echo start to jar the folder
jar cvf apple.jar -C release/ .
Echo jar Complete
Pause
EXIT
上面就是我们打包的整个过程。
总结
- 使用命令jar cvf xx.jar -C xxx/ . 将class文件打包进jar文件