ประกาศไฟล์ jar ในเครื่องเป็นการพึ่งพาแบบสกรรมกริยาของโครงการไลบรารี

ฉันมีแอป 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/


person Mike Laren    schedule 14.10.2014    source แหล่งที่มา