Android studio 中引用jar的其实是Maven?(一)
由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显得并没有那么友好了,因为过程中会涉及更多内容,而且你必须认清楚studio的目录结构。
举个例子:
下图是我在git上面下载的一个工程,工程中包括了一个lib工程和第三方jar包。
以上为一个工程的projest视图,由这个视图可以看出,其中有两个代码模块,一个是demo,一个是library,这两个代码模块会被粗体文字标示出来。还有一个大的文件分支:External Libraries,由字面上的意思就是,第三方依赖的库文件。然后,下面一推的jar包。
还有其他的一些文件,一些gradle脚本相关的文件,如果第一次使用studio你会很惊讶,究竟这些文件又啥用呢?其实除了demo和library之外的文件都是这个工程的构建文件,这个工程的建立依赖了这些文件。因此如果还不够明白,我们可以切换到android工程视图来看。
上图是一个工程的android视图,由视图可以看出,该工程下面包含了三个部分:demo,library,Gradle Scripts。
demo是主体工程,library是依赖库,那么Gradle Scripts就是这个工程的构建脚本了。Gradle Scripts下面可以到脚本的一些属性设置项,settings决定了脚本目标模块是谁,而三个不同的build.gradle则针对不同的模块,针对其后的括号内容。
下图是这个工程的的build.gradle(project)的内容:
由上图可知,负责构建project的gradle脚本,仅仅定义了gradle的版本,并且注释着:
貌似这样看来瞬间对studio的工程结构清晰了很多,可是问题又来了:在android视图下面,第三方android的jar包去哪里了,即External Libraries去哪里?而在project视图下,这些jar又是在哪里下载的?
关于第一个问题,为何在android视图下面没有显示第三方jar包我还不清楚,是studio犯抽了还是故意隐藏掉,不得而知。
关于在哪里下载,这个必须好好找找原因。
在第一次打开使用各个模块的build脚本之后,你会发现,studio开始下载一些工具库,包括在project视图下面的第三方jar包,而这些jar在哪里定义?哪里下载呢?
切换回project视图,你会发现这些第三方jar包都是被定义在各个模块中的脚本中,而这些脚本都引用了仓库,maven仓库,又脚本上段可以看出这个仓库名称”jcenter()“.
既然是一个代码仓库,那么总会有下载地址的吧,所以在脚本里面,按住ctrl,选中”jcenter()“这个方法,跳到这个方法实现类里面,如图:
找到这个方法定义之后,在往上找,找到该类:
ctrl+点击该类,你会发现惊喜。没错,仓库的地址定义在这个类ArtifactRepositoryContainer里面:
然后打开以上网址,你会惊讶地发现,这个仓库实在有太多代码块了,按着jar包名称,可以慢慢找到之前定义好的jar包。
至于他们如何对这些jar包进行下载的,有待进一步研究maven仓库。
下一篇: Android studio 中引用jar的其实是Maven?(二)
更多推荐
所有评论(0)