在开始本文之前先谈谈自己开始写博客的感触, 之前一直感觉写博客很麻烦, 浪费时间, 所以在工作中遇到一些问题时, 就随手写在了为知笔记里, 方便自己后续查阅, 既然是自己看, 所以写的就比较粗略. 在网上查找资料时, 大家就会发现有时想要查一个问题时, 可能需要看很多的博客, 花费很长时间才能解决, 所以就想要把自己遇到的一些问题分享出来, 供有需要的朋友参考, 也方便给自己做一个记录. 由于是刚开始写, 所以在表达上可能会不太好, 请各位大牛嘴下留情, 当然也希望各位有好的建议的话多多留言, 好了, 废话不多说, 开始今天的主题了.
之前公司中的一些项目很多都是在Eclipse中维护的, 当给一个库打jar包时, 使用编写好的ant脚本一键生成, 但是最近想要把这些项目迁移到AS中, 就面临这使用gradle脚本来编译jar包, 网上有很多种说法, 我这里就说下我亲身实践的一种方法:
//每次生成jar包时将之前的jar包删除
task clearJar(type: Delete) {
//xxx.jar表示你想要生成的jar包的名字
delete 'build/libs/xxx.jar'
}
//指定生成jar包的来源和存放位置以及名称, 这里写的是default目录(是因为我这个module中的bundles文件夹下没有release文件夹) , 若有release文件夹则改为release文件夹.
task makeJar(type: Copy) {
from('build/intermediates/bundles/default/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'xxx.jar')
}
//生成jar包
makeJar.dependsOn(clearJar, build)
若想要对这个jar包进行混淆, 则将下面的minifyEnabled设置为true(注意要先将混淆文件配置好)
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
配置好上面的gradle选项之后, 点击as右侧的gradle栏, 会弹出来此项目所有module的gradle任务, 然后点击你想要生成jar包的module, 展开之后点击other, 在这里你会找到makeJar的任务, 然后双击, 就会执行编译了, 等待编译成功就ok了.
如打包时不想将引入的第三方jar包打进jar包中, 则可以使用如下方式:
这里参考如下博客, 非常感谢 !
http://blog.csdn.net/wangjia55/article/details/31750419
1. 在Android studio下打开project structure, 选中这个module, 选择”Dependencies”栏目, 就可以看到项目中所有依赖项.
2. 在不想打入的jar包后面有一个Scope的选项, 将默认的”Compile”选择为:”provided”即可.
3. 这时候你会发现项目中的build.gradle文件中相应的依赖也会变成provided
我经常使用的一种方式是, 将这个项目中依赖的第三方库(包括直接使用的jar包)都放置在一个单独的Library module中, 然后让项目module依赖这个module, 这样就方便管理.
之前一直想着类似于生成jar包一样在gradle中配置生成Javadoc, 就查找资料, 按照如下配置方式配置, 结果就一直报如下错(有哪位大神指导原因的, 欢迎在下方留言告知, 多谢), 这种方法也就夭折了.
Error:Failed to capture snapshot of input files for task 'javadoc' property 'classpath' during up-to-date check.
> Could not normalize path for file 'D:\develop\studio\android-sdk\platforms\android-25\android.jar;D:\develop\studio\android-sdk\platforms\android-25\optional\org.apache.http.legacy.jar'.
生成javadoc文档.
task javadoc(type: Javadoc) {
options{
encoding("utf-8")
links "http://docs.oracle.com/javase/7/docs/api"
}
include(
"**/BaseConfig.java",
"**/HciCloudSeed.java",
"**/HciCloudSeedErrorCode.java",
"**/BaseConfig.java",
"**/OnSeedListener.java",
"**/OnWakeupListener.java",
"**/RuntimeResourceLoaderManager.java",
"**/TtsPlayerListener.java"
)
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
destinationDir = file("../javadoc/")
failOnError false
}
javadoc.dependsOn(build)
最终还是选择了使用Android studio提供的生成Javadoc的方法(之前没有想要使用这种方式的原因是因为当时以为使用这种方式的话每次生成都需要选择想要生成的java文件, 过于麻烦), 最后发现, 使用这种方式只有配置过一次规则之后, 这个规则会一直存在, 因此这种方式还是比较方便的.
具体步骤如下:
下图中:
位置1 : 选择要生成Javadoc的文件
位置2: 设置生成的Javadoc文档存放的位置.
位置3.: 设置编码格式(填如下指令: -encoding utf-8 -charset utf-8)
到这里就配置好了, 就可以生成你想要的javadoc了.