apt依赖范围在Android gradle – 它是什么用?
什么是apt依赖范围在android gradle文件我看到有时?
一个例子看起来像这样? apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' android { compileSdkVersion 20 buildToolsVersion '20.0.0' defaultConfig { applicationId "org.ligboy.test.card.module1" minSdkVersion 14 targetSdkVersion 20 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } } } final DAGGER_VERSION = '2.0.2' dependencies { compile "com.google.dagger:dagger:${DAGGER_VERSION}" apt "com.google.dagger:dagger-compiler:${DAGGER_VERSION}"//what is this scope provided 'org.glassfish:javax.annotation:10.0-b28' } 并且在顶级build.gradle文件中,它具有此全局依赖性: buildscript { dependencies { classpath 'com.android.tools.build:gradle:1.3.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' } } 注意在依赖部分有一个apt范围?我只知道编译,包和提供范围。编译 更新: 我创建了一个教程dagger dependency scopes为那些谁需要更多的信息。
从
android-apt project page:
您正在使用Dagger,它使用注释处理来生成代码。注释处理代码不应包含在最终APK中,您希望生成的代码对Android Studio可见。 android-apt启用此行为。 这听起来非常类似于提供的范围,但适应不同于几个关键方式提供。第一个区别是,由apt提供的依赖关系生成的代码可用于IDE,而由提供的依赖关系生成的代码则不可用。 另一个重要的区别是,使用提供的作用域的库中的代码在IDE类路径上(即,您可以导入类并尝试使用它们),而apt依赖项中的代码则不是。如果提供,你的代码将在运行时崩溃,如果实际上不提供引用的依赖与编译作用域对端。 您可以在this 在Dagger的情况下,没有理由在任何代码中包含注释处理器和代码生成器(提供范围允许)。因此适用范围更合适。 2016年10月更新: 查看更多What’s next for android-apt? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |