У меня есть проект Gradle в Eclipse, состоящий из нескольких подпроектов. В настоящее время у меня есть подпроекты A, B и C.
Проект A должен иметь доступ к проекту B. Проект B должен иметь доступ к проекту C. Но проект A не должен иметь доступ к проекту C.
A -> B, B -> C, but not A -> C
Я легко могу проверить это, имея класс java example в Project A, который пытается использовать класс из Project C.
Я достиг этого с помощью Gradle, используя следующую настройку в основном файле build.gradle
и используя свойство transitive
:
project(':projectA') {
dependencies {
compile project(':projectB'), {
transitive = false
}
}
}
project(':projectB') {
dependencies {
compile project(':projectC'), {
transitive = false
}
}
}
Запуск Gradle compileJava
в проекте. Примерный класс дает правильное сообщение об ошибке. Я хотел бы, чтобы эта ошибка возникла как ошибка компиляции в Eclipse. Мне также удалось вручную настроить путь к классам таким образом, чтобы было выполнено требуемое соотношение, но Gradle Refresh/Rebuild снова сбрасывает путь к классам.
Можно ли использовать компилятор Gradle Java вместо компилятора Eclipse? Или я должен влиять на файлы classpath при выполнении Gradle Refresh/Rebuild? Возможно ли другое решение?
Я хотел бы услышать, какой предпочтительный подход для этой ситуации. Спасибо!