เวลาทำงานกับ Gradle หรือ Maven – มันสะดวกที่ เราไม่ต้องมานั่ง add library ที่เรา download มาใช้งาน มันจะทำการจัดการให้เราทุกอย่าง แค่เราระบุว่าจะใช้ library ไหน version อะไร ที่เหลือมันทำให้หมด โดยมันจะดึงไฟล์จาก repository ใน Internet มาให้เราเลย – แต่ บางครั้ง เราก็มี project เก่า ที่ทำไว้ แล้วต้องการนำมาใช้งาน โดยเราก็ไม่อยาก copy source code มาไว้ใน project ใหม่ เพราะไม่อยาก maintain code ทั้ง 2 ฝั่ง ทีนี้ก็ติดปัญหาว่าเราจะดึงมาใช้อย่างไร
ก่อนหน้านั้นก็พยายามหาวิธี แต่หาไม่ค่อยได้
บางครั้งถึงกับคิดว่าต้องสร้าง Local Repository เลย – แต่มันจะคุ้มเหรอ
วันนี้เจอวิธีแล้ว แถมง่ายๆซะด้วย
## ใช้ไฟล์ JAR ที่อยู่ในโปรเจกต์ (Local JAR File)
วิธีนี้จะใช้เมื่อ JAR ที่คุณต้องการไม่มีอยู่บน repository ออนไลน์ เช่น เป็นไฟล์ไดรเวอร์, library ที่บริษัทสร้างขึ้นเอง หรือไฟล์ที่คุณดาวน์โหลดมาเก็บไว้
ขั้นตอน:
- สร้างโฟลเดอร์
libs: ที่ระดับบนสุดของโปรเจกต์ (ระดับเดียวกับโฟลเดอร์src) แล้วนำไฟล์.jarของคุณไปวางไว้ข้างใน 📁

- แก้ไขไฟล์
build.gradle: ไปที่ส่วนdependencies { }แล้วใช้คำสั่งfiles()หรือfileTree()เพื่ออ้างอิงถึงไฟล์นั้น

## 💡 เกร็ดความรู้: implementation กับ api ต่างกันอย่างไร?
คุณอาจจะเคยเห็น api แทน implementation ซึ่งมีความแตกต่างกันเล็กน้อย:
implementation(ควรใช้เป็นหลัก): บอกว่า JAR นี้เป็น “ของใช้ส่วนตัว” ภายในโปรเจกต์ของคุณเท่านั้น โปรเจกต์อื่นที่มาเรียกใช้โปรเจกต์ของคุณ จะมองไม่เห็น JAR ตัวนี้api: บอกว่า JAR นี้เป็น “ส่วนหนึ่งของโปรเจกต์” ที่คุณต้องการเปิดเผยให้โปรเจกต์อื่นที่มาเรียกใช้คุณ สามารถมองเห็นและใช้งานคลาสจาก JAR นี้ได้โดยตรง
คำแนะนำ: ให้ใช้ implementation เป็นอันดับแรกเสมอ แล้วค่อยเปลี่ยนเป็น api ก็ต่อเมื่อคุณเจอปัญหาตอนคอมไพล์ที่ฟ้องว่าหาคลาสไม่เจอเท่านั้น

