मैं Gradle निर्भरता प्रबंधन में एक अजीब व्यवहार expriencing कर रहा हूँ, जहां परियोजना एक संदर्भ परियोजना बी के रूप में निर्भरता और परियोजना बी संदर्भ संकलन क्रम निर्भरता के रूप में पुस्तकालय सी के रूप में सकर्मक क्रम निर्भरता भी शामिल है। अब मैं अपने प्रोजेक्ट ए में लाइब्रेरी सी से कक्षाओं का उपयोग कर सकता हूं।Gradle संकलन निर्भरता
मेरा प्रश्न: (क्यों) यह एक बग या सुविधा है?
समस्या Gradle 2.9 और 2.10 और निम्न न्यूनतम सेटअप के साथ reproduced किया जा सकता है:
// settings.gradle
include ':A', ':B'
// build.gradle
allprojects {
apply plugin: 'java'
apply plugin: 'maven'
repositories {
mavenLocal()
mavenCentral()
}
}
project(':A') {
dependencies {
compile project(':B')
}
}
project(':B') {
dependencies {
runtime "org.slf4j:slf4j-log4j12:1.7.13"
}
}
आप देख सकते हैं, एक Gradle :A:dependencies
से पता चलता
[...]
compile - Compile classpath for source set 'main'.
\--- project :B
\--- org.slf4j:slf4j-log4j12:1.7.13
+--- org.slf4j:slf4j-api:1.7.13
\--- log4j:log4j:1.2.17
[...]
और का उपयोग कर log4j परियोजना ए में रहने वाले जावा कोड में पूरी तरह से संभव है
इस माइकल से पूछने के लिए धन्यवाद। इस मामले में गहराई का व्यवहार पूरी तरह से counterintuitive है :-( – Peti