心血来潮想看一下caffine 这个高速缓存,最直接的方法是下载它的源码,并且编译它 在编译过程中用到了gradle,这个之前没有玩过,边看边编译,浪费了很多时间!!!! 出现的问题 ,我的版本是2.x 1.unable to find valid certification path to requested target 出现这个问题是因为java不信任window平台的任何证书,这个阶段可能出现在下载 gradle-6.8-rc-3-bin.zip过程中,还有可能出现在从云仓库下载依赖包的过程 解决方式: 如果出现在下载gradle的这个时候,可以手动从官网下载后,放到GRADLE_HOME/wrapper/dists/文件夹(和你下载的报名一样)/xxxx(首次build出现的一个随机字符名称)/ 下,下次在build的时候就不会有问题了 如果出现在依赖云仓库下载依赖时,可以通过keytool把 云仓库的证书导入到java的cacerts中,重启idea ,关闭gradle deomon线程,重新编译(此方法同样适用于上面下载gradle包的时候),gradle没有像maven的那种忽略https验证的方法(有知道的可以说下) 2.FAILURE: Build failed with an exception. What went wrong:Execution failed for task ":caffeine:compileJavaPoetJava". 出现在这个问题,我也是解决得很久,还是没解决,好像前面是一句废话,最后还是问了作者,给出的回复是已经在后面的3.x版本修复,我尝试根据他提交的记录在2.x上试了一下,果然成功 ,具体操作如下:修改文件 caffeine/gradle/codeQuality.gradle,添加以下配置 excludedPaths = ".*/generated-sources/.*" 3.编译过程中,javadoc出现失败,gbk不能编译的问题 在各子模块的build.gradle文件中添加配置options.encoding="UTF-8" ,具体的位置如下 compileJava { File path = file("${buildDir}/generated-sources/main") options.annotationProcessorGeneratedSourcesDirectory = path options.encoding="UTF-8" sourceSets.main.java.srcDirs += path outputs.dir path doFirst { delete path mkdir path } } tasks.withType(JavaCompile) { options.encoding="UTF-8" options.errorprone.nullaway { severity = CheckSeverity.OFF } } tasks.withType(Javadoc) { options.encoding="UTF-8" options.addStringOption("Xdoclint:none", "-quiet") // https://github.com/akka/akka/issues/21165 enabled = !JavaVersion.current().isJava9Compatible() } tasks.withType(JavaCompile) { options.encoding="UTF-8" if (name.contains("Test") || name.contains("Jmh")) { options.errorprone.nullaway { severity = CheckSeverity.OFF } } }