Java Gradle Project – ใช้งาน Local Jar

Java Gradle Project – ใช้งาน Local Jar

เวลาทำงานกับ 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 ก็ต่อเมื่อคุณเจอปัญหาตอนคอมไพล์ที่ฟ้องว่าหาคลาสไม่เจอเท่านั้น