如何在gradle的build.gradle依赖项中使用“provided”关键字

时间:2015-03-10 17:19:05

标签: android gradle

我是新手。请帮助我了解如何使用关键字"提供"这是在build.gradle依赖项块中。

这个"提供的"之间有什么区别?与"提供编译"和" providedRuntime"?

的build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

...

dependencies {
  def presentationDependencies = rootProject.ext.presentationDependencies
  def presentationTestDependencies = rootProject.ext.presentationTestDependencies

  compile project(':domain')
  compile project(':data')

  apt presentationDependencies.daggerCompiler
  compile presentationDependencies.dagger
  compile presentationDependencies.butterKnife
  compile presentationDependencies.recyclerView
  compile presentationDependencies.rxJava
  compile presentationDependencies.rxAndroid
  provided presentationDependencies.javaxAnnotation //what is this???

  ...
}

修改

有问题的项目没有提及

configuration {
    provided
}

它仍在编译!

该项目为Android-cleanArchitecture

TIA

1 个答案:

答案 0 :(得分:0)

Gradle没有内置支持所提供的依赖范围。 但是this blog(归功于Danny,博客作者)描述了如何模拟它。 简而言之,您需要提供名为"提供":

的新配置
configurations {
    provided
}

然后将此配置添加到相关的源集配置中:

sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}

最后你很高兴:

dependencies {
    provided <your dependency>
}

请注意,根据博客文章,如果您正在使用Eclipse,那么主要的缺陷就是#34;但该帖子也提供了解决方法。