理解Gradle中的项目依赖关系

理解Gradle中的项目依赖关系,gradle,Gradle,我有两个项目: 项目A——这一个有主代码 项目B——这个项目有测试代码 (由于某些原因,我不得不在一个单独的项目中保留测试代码一段时间) 现在在项目B中,我在项目a上添加了testCompile依赖项配置。我想了解这些依赖项配置语句之间的区别: dependencies { testCompile project(":ProjectA") testCompile project(":projectA").sourceSets.main.output testCompi

我有两个项目:

  • 项目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")
可以,但不行


任何帮助都将不胜感激。

在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
}

任务打印在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
}
任务打印