`
JerryWang_SAP
  • 浏览: 1029294 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

build.gradle里dependencies标签页的实现原理

阅读更多

build.gradle里的dependencies标签页:

 

 

如果把dependencies改成dependencies2, gradle build的输出会遇到错误消息:

 

 

A problem occurred evaluating root project 'quickstart'.

Could not find method dependencies2() for arguments [build_a2307i03s3k13jdug3afl2lin$_run_closure3@21c69f73] on root project 'quickstart' of type org.gradle.api.Project.

找到这个org.gradle.api.Project类,位于目录org\gradle\api下面:

 

 

打开Project.java, 查看关于dependencies的说明:

A project generally has a number of dependencies it needs in order to do its work. Also, a project generally * produces a number of artifacts, which other projects can use. Those dependencies are grouped in configurations, and * can be retrieved and uploaded from repositories. You use the {@link org.gradle.api.artifacts.ConfigurationContainer} * returned by {@link #getConfigurations()} method to manage the configurations. The {@link * org.gradle.api.artifacts.dsl.DependencyHandler} returned by {@link #getDependencies()} method to manage the * dependencies. The {@link org.gradle.api.artifacts.dsl.ArtifactHandler} returned by {@link #getArtifacts()} method to * manage the artifacts. The {@link org.gradle.api.artifacts.dsl.RepositoryHandler} returned by {@link * #getRepositories()} method to manage the repositories.

Project是一个接口:

 

 

里面定义了dependencies这个方法:

 

 

这个方法的实现在哪里呢?

将dependencies标签页里的implementation标签随便换个名字:

 

 

gradle build出错:

A problem occurred evaluating root project 'quickstart'. Could not find method implementation2() for arguments [{group=commons-collections, name=commons-collections, version=3.2.2}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

说明Implementation标签页的实现就位于org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler类里.

group改成group2:

 

 

build出错:

A problem occurred evaluating root project 'quickstart'. Could not set unknown property 'group2' for DefaultExternalModuleDependency{group='null', name='commons-collections', version='3.2.2', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency.

所以build.gradle文件dependencies里的标签对应了DefaultExternalModuleDependency类的实例. 前者dependencies属性group, name和version对应了DefaultExternalModuleDependency类的成员:

 

 

再把dependenies里的group属性值稍作修改,改成一个并不存在的库文件名:

 

 

gradle build报错:

Could not resolve all files for configuration ':compileClasspath'. Could not find commons-collections-:commons-collections:3.2.2. Searched in the following locations: - repo.maven.apache.org/m If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration. Required by: project :

从错误信息的url能看出gradle build下载依赖的地址:repo.maven.apache.org/m

如果把url里多余的-去掉,在浏览器里即可正常访问:

repo.maven.apache.org/m

 

 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    Uniapp调用java代码-使用Android Studio,将Java代码打包成uniapp可以调用的aar文件

    如果遇到 Gradle 版本不兼容的问题,需要修改 `build.gradle` 文件中的 Gradle 版本至与你的 Android Studio 相匹配。 3. **删除不必要的文件和设置**:清理项目,删除示例代码和不必要的配置,例如 `build.gradle`...

    resource-caching-gradle-plugin

    资源缓存 Gradle 插件该插件允许为 Web ... 这样做,将以下行添加到您的 build.gradle 中: buildscript { repositories {jcenter() } dependencies {classpath 'de.richsource.gradle.plugins:resource-caching-gradl

    Android使用Fragment实现标签页

    本教程将围绕如何在Android应用中使用Fragment实现标签页功能进行详细介绍。 首先,理解Fragment的基本概念。Fragment是一个可以包含UI元素的部分,它可以有自己的生命周期,并且可以在Activity之间共享。在...

    Android 底部菜单.zip源码资源下载

    11. **依赖管理**:`build.gradle`文件中的`dependencies`块会列出所有引入的库,如AndroidX库或其他第三方库,用于实现特定功能。 通过学习这个源码资源,开发者不仅能实现底部菜单,还能学习到Android开发中的...

    AndroidStudio多项目共享library

    在“Dependencies”标签页中,点击“+”按钮,选择“Module Dependency”,然后从项目列表中选择已导入的Library模块。 5. **同步构建**:添加完依赖后,点击菜单栏的“File” > “Sync Project with Gradle Files...

    EasyFloat::fire:EasyFloat:浮窗从未如此简单(Android可拖曳悬浮窗,支持页面过滤,自定义动画,可设置单页浮窗,前台浮窗,多层浮窗,浮窗权限按需自动申请)。 ..)

    EasyFloat:Android悬浮窗框架 ...在项目的根目录的build.gradle添加: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 在应用模块的build.gradle添加: dependencies { imp

    Android studio 2.1 NDK环境搭建(内涵一个demo)

    运行`ndkBuild`任务(在Android Studio中,可以右键点击`build.gradle`文件,选择`Tasks` -> `externalNativeBuild` -> `ndkBuild`),编译器会根据`Android.mk`生成对应的.so库文件。 最后,为了在Java代码中调用...

    ViewPager实现Tabhost

    在Android开发中,`ViewPager` 是一个非常常用的组件,它允许用户通过左右滑动来浏览多个页面,通常用于实现平滑的...总的来说,`ViewPager`结合`TabLayout`是实现Android应用中高效、灵活的标签页导航的一种常见方法。

    自定义annotationProcessor

    4. 在IDEA中,选择`File` > `Project Structure` > `Modules`,然后找到你的模块,检查`Sources`标签页,确保`Annotation Processors`选项已被选中。 通过以上步骤,你的自定义`annotationProcessor`将在编译时自动...

    漂亮的画廊viewpager

    在Android开发中,`ViewPager`是一个非常常用的组件,它允许用户在多个页面间左右滑动进行切换,通常用于实现类似相册、画廊或者Tab标签页的效果。标题“漂亮的画廊ViewPager”暗示我们将讨论一个定制化的`ViewPager...

    springboot028摄影网站.zip

    8. **依赖管理(Dependencies)**:在pom.xml或build.gradle文件中,可以看到项目所依赖的第三方库,如Spring Boot的父依赖、Spring Web、Spring Data JPA、MySQL驱动等。 9. **测试(Tests)**:项目可能包含单元...

    AVLoadingIndicatorViewAndroid.zip

    1. **添加依赖**:首先,在你的项目级 build.gradle 文件中添加仓库(如果尚未添加),然后在应用级 build.gradle 文件中添加库的依赖。例如,可能需要添加如下代码: ``` repositories { mavenCentral() } ...

    android studio TabLayout应用开发

    通过这个实例,你可以学习到如何将TabLayout与ViewPager结合,创建出具有多标签页的应用界面,以及如何自定义Tab的样式和行为。这个实例将帮助你更好地理解和掌握Android Studio中的TabLayout应用开发。

    Android-ChipView一个MaterialDesign风格的Chip视图库

    1. 添加依赖:在项目的`build.gradle`文件中,添加库的依赖信息。 2. 在XML布局文件中声明ChipView,并设置相应的属性。 3. 在代码中初始化并设置数据,可以动态添加、删除Chip,或者监听其状态变化。 **示例代码**...

    SuperBadge,超级徽章Android库.zip

    这个库旨在帮助开发者轻松地在应用中添加带有数字或者图标的小标签,通常用于展示未读消息数量或者其他状态指示。下面将详细介绍这个库的关键特性和使用方法。 1. **组件介绍**: SuperBadge是一个轻量级的Android...

    Android studio实现简单的登录跳转源码

    `build.gradle`文件定义了项目的依赖项和构建配置。`dependencies`块中可能包含对Android SDK库的引用,如AndroidX库,这在构建和运行项目时是必需的。 8. `settings.gradle`文件: 它包含了项目的模块设置,告诉...

    Android Design新控件之TabLaout,分分钟打造一个滑动标签页

    TabLayout是Android Design Support Library中引入的一个新控件,它帮助开发者快速实现滑动标签页,为用户提供清晰、直观的导航方式。本文将深入探讨TabLayout的基本用法、自定义以及与其他组件的配合使用,助你轻松...

    idea build 无war包

    - 对于Gradle项目,`build.gradle`文件中应包含`war`插件,并配置相关任务。 3. **检查构建配置**: - 在Idea中,进入“File” -> “Project Structure”,然后选择“Artifacts”选项卡,确认是否有配置正确的WAR...

    Android Support Design Library之TabLayout

    4. `FragmentX.java`:一系列Fragment类,每个类代表一个标签页的内容,如`FragmentNews`、`FragmentSports`等。 5. 可能还包括其他资源文件,如图标的图片文件,以及样式和主题设置。 通过分析和运行`...

    jstl和standard下载

    对于使用Maven或Gradle等构建工具的项目,我们可以在`pom.xml`或`build.gradle`文件中添加相应的依赖配置。例如,在Maven的`pom.xml`中,可以这样写: ```xml <dependencies> <groupId>javax.servlet.jsp.jstl ...

Global site tag (gtag.js) - Google Analytics