这两天用AndroidStudio打包工程,中间涉及到task javaDoc,记录下对这方面的相关配置:
1.如果工程中涉及到中文的话,在执行javaDoc任务时可能会报中文编码问题,这个问题在之前AndroidStudio上传jcenter及各种实现方式的比较中提到过,两种解决方案,另外也可以尝试配置全局的编码格式,具体步骤:找到工程根目录下build.gradle,在allprojects中添加相关配置,就像这样:
allprojects {
repositories {
jcenter()
}
tasks.withType(org.gradle.api.tasks.compile.JavaCompile){
options.encoding="UTF-8"
options.compilerArgs << "-Xlint:unchecked"
}
}
这里主要就看tasks.withType(ort.gradle.api.tasks.compile.JavaCompil)这一段代码就行了,下面那个options.compilerArgs,这是用来配置在生成javaDoc文档时,lint不进行检查,这是针对lint检查最简单粗暴的方法,因为有时候可能会直接拷贝别人的源码,这样如果人家的源码中在执行javaDoc时出现问题就不好调了,而且去弄人家的东西也比较麻烦,注意,这种方式,不仅第三方源码不检查了,就连自己的代码也不会检查了,这是全局的,当然还有另外一种处理项目中第三方源码的方法
2.去除javaDoc对第三方源码的编译,这种方式就可以有效避免因为第三方源码带来的lint检查问题,具体操作:task javaDoc中添加exclude项进行配置,点进去看这个exclude方法就会发现这是支持字符串数组的方法:
/**
* {@inheritDoc}
*/
public SourceTask exclude(String... excludes) {
patternSet.exclude(excludes);
return this;
}
配置exclude的代码如下:
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
exclude "第三方源码的目录","第三方源码的目录","第三方源码的目录"
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
直接这样就可以了,注意这里配置的目录中间应该以"/"分开,包名可能是:com.example.project.openresource,那么第一个引号中就应该填入"com/example/project/openresource"即可。