ฉันมีแอป Android (App1) ที่ขึ้นอยู่กับโครงการห้องสมุด (Lib1) โครงการไลบรารีมีการขึ้นต่อกันระยะไกลหลายรายการ (เช่น ฝรั่ง ไลบรารีสนับสนุน Android ฯลฯ) และการขึ้นต่อกันในเครื่องสองรายการ ซึ่งเป็นไฟล์ JAR ที่จัดเก็บไว้ใน Lib1/libs/
นี่คือลักษณะของส่วนการขึ้นต่อกันของ build.gradle ของ Lib1:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:support-v4:20.0.+'
compile 'com.google.guava:guava:r08'
}
ถ้าฉันคอมไพล์เฉพาะไลบรารี (เช่นรัน gradle assemble
บนโฟลเดอร์ Lib1/) มันจะคอมไพล์อย่างถูกต้อง แต่เมื่อฉันเพิ่มไลบรารีเป็นการพึ่งพาของ App1 แล้ว gradle จะบ่นว่าไม่พบขวดทั้งสองใน libs/ โฟลเดอร์ของ Lib1
นี่คือ build.gradle ของ App1:
dependencies {
compile project(':Lib1')
compile 'org.apache.james:apache-mime4j-core:0.7.2'
compile 'org.apache.jackrabbit:jackrabbit-webdav:2.3.6'
...
}
มีวิธีที่จะบอก gradle ได้หรือไม่ว่าหากไลบรารีขึ้นอยู่กับไฟล์ jar ในเครื่องแล้วโปรเจ็กต์ที่ขึ้นอยู่กับไลบรารีนั้นก็ควรรวมไฟล์เหล่านั้นไว้เป็นการพึ่งพาด้วยหรือไม่ การพึ่งพาระยะไกลทำงานได้ดี แต่ไม่ใช่เมื่อคุณมีไฟล์ jar ใน libs/