Fabric本地依赖实践

Fabric是很多app使用的日志管理和上报工具,通常是本地依赖,使用方式可以参考Frabic用法,但是使用Frabric的项目在构建的时候需要依赖外部网络(咳咳),所以Jenkins服务器无法构建成功。所以需要你将Fabric修改成本地依赖。我查了很多资料,没有找到对应的资料。

我的思路一:将需要的fabric文件放在工程本地,然后修改依赖方式为本地。

思路二:将Fabric改成maven私服依赖,添加私服的maven仓库地址。

目前已经实现了思路一,下面坐介绍。

这两种思路其实都需要将依赖的Fabric文件下载到本地,但是我们不知道有哪些Fabric文件,这就需要解决的第一个问题。

问题一:下载Fabric库文件。

请教同事之后,同事说Fabric依赖的文件可以在*.pom文件的dependecy节点查看。

那么如何下载Fabric对应的*.pom文件呢?可以在./gradlew assembleDebug执行过程中查看所有的网络请求,然后通过搜索其中的Fabric对应的网络请求,就可以拿到pom文件的下载地址,现在的版本地址是https://maven.fabric.io/public/io/fabric/tools/gradle/1.25.3/gradle-1.25.3.pom

gradle-1.25.3.pom的文件内容是


4.0.0
io.fabric.tools
gradle
1.25.3

从中你可以看到Fabric没有其他的dependecy

如何下载对应的jar/aar文件呢?首先我们不知道需要的是jar还是aar,还是通过./gradlew assembleDebug执行过程中的网络请求,筛选其中的Fabric请求,我发现只有一个jar的网络请求:Download https://maven.fabric.io/public/io/fabric/tools/gradle/1.25.3/gradle-1.25.3.jar

另外,我们还需要maven-metadata.xml文件 ,下载地址用同样的方式可以得到Download https://maven.fabric.io/public/io/fabric/tools/gradle/maven-metadata.xml

说明一:执行./gradlew assembleDebug之前需要把gradle的缓存清掉,可以通过

  1. gradle build --refresh-dependencies  

但是我没有执行成功,我把mac用户文件下的.gradle文件夹删掉,就确保把缓存去都清除了

删除使用命令行,参考ls命令和rm删除文件


问题二:如何添加到本地

参考之前同事在本地添加maven仓库的方式,

Fabric本地依赖实践_第1张图片

上图是添加maven仓库的本路径,maven{ url '../maven'}表示从工程根目录下的maven文件夹下寻找maven依赖,

同时要把maven{url 'https://maven.fabric.io/public' }注释掉,因为gradle还有可能从这个maven地址下载farbic的文件

Fabric本地依赖实践_第2张图片

上图是本地文件目录,md5和sha1由mac shell生成,请参考这里


做完上述步骤就完成了Fabric的本地依赖。


总结一下走的弯路:

1,由于网络原因(咳咳),无法下载到pom文件,第一次尝试失败,隔了一周,Jenkins构建失败第二次解决问题才搞通了网络
2,由于gradle缓存,无法捕捉到fabric文件的下载地址,清除gradle缓存走了弯路

你可能感兴趣的:(Android,学习记录)