2016-06-02 8 views
1

У меня есть два проекта:Понимание зависимостей проекта в Gradle

  • проекта A - это один имеет основной код
  • проект B - это один имеет тестовый код

(для по какой-то причине мне нужно некоторое время удерживать тестовый код в отдельном проекте)

Теперь в проекте B я добавляю конфигурацию зависимостей testCompile в проекте A. Я хочу понять разницу betw ееп эти утверждения конфигурации зависимостей:

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

Я задаю этот вопрос, потому что я на самом деле хочу, чтобы тянуть во всех компиляции временных зависимостей проекта A в зависимости testCompile проекта B, и я не могу понять, как это сделать что. Я предположил, что

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

будет работать, но это не так.

Любая помощь будет оценена по достоинству.

ответ

0

В build.gradle projectB, вы можете добавить следующее:

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

Это говорит Gradle использовать основной код Projecta в projectB. Затем вы можете написать тесты против projectA в projectB.

Вы можете сделать это, чтобы получить больше информации о зависимости:

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 
} 

Оба проекта или набор источников может быть введен в конфигурацию в зависимости {} блокировать

Смежные вопросы