了解Gradle中的项目依赖项

时间:2016-06-02 23:17:02

标签: gradle

我有两个项目:

  • 项目A - 这个有主要代码
  • 项目B - 这个有测试代码

(由于某种原因,我必须将测试代码保存在单独的项目中一段时间​​)

现在在项目B中,我在项目A上添加了一个testCompile依赖项配置。我想了解这些依赖项配置语句之间的区别:

dependencies {
    testCompile project(":ProjectA")
    testCompile project(":projectA").sourceSets.main.output
    testCompile project(path: "projectA", configuration: "compile")
}

我问这个问题,因为我实际上想把项目A的所有编译时依赖项都引入到项目B的testCompile依赖项中,我无法弄清楚如何做到这一点。我假设

testCompile project(path: "projectA", configuration: "compile")

会起作用,但事实并非如此。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在projectB的build.gradle中,您可以添加:

dependencies{
    compile project(':projectA')
    testCompile 'junit:junit:4.12'
}

这告诉gradle在projectB中使用projectA的主代码。然后,您可以在projectB中针对projectA编写测试。

您可以执行此操作以获取有关依赖项的更多信息:

task print << {
    println project(":projectA").getClass() //Output: org.gradle.api.internal.project.DefaultProject_Decorated
    println project(":projectA").sourceSets.main.output.getClass() //Output: org.gradle.api.internal.tasks.DefaultSourceSetOutput_Decorated
    println project(path: "projectA", configuration: "compile").getClass() //This doesn't work in gradle 3.0
}

项目或源集都可以输入到依赖项{}块

中的配置