วิธีการเพิ่ม submodule ของโปรเจกอื่นๆ เข้ามาในโปรเจก Android ของเรา

Android Jul 10, 2020

มันดูจะยากไปหน่อย แต่ก็ไม่ได้ยากขนาดนั้นนะ มาเรียนรู้การเพิ่มแบบถูกหลักอนามัยกันเถอะ เพื่อให้คนในทีมสามารถใช้ได้ด้วย

Photo by Andrew Pons / Unsplash

มาเริ่มทำกันดีกว่านะ

1) ไปที่ SourceTree เลื่อนลงไปหา submodules คลิกขวา เลือก Add Submodules ...

2) ใส่ path .git ในช่อง Source Path / URL และสร้าง folder ที่ชื่อว่า submodules โดยอยู่ใน folder หลักของ project ประมาณ .../{your_project}/submodule

3) เมื่อเรากด OK เรียบร้อยแล้ว มันจะทำการ merge submodules เข้าไปใน git ของโปรเจกหลักของเรา เราจะได้

  • .gitmodules บอกว่าอันนี้เป็น submodule อะไร และมี url และ path อะไร
  • submodules/{your_submodule} อันนี้จะบอกเลขที่เรา commit code ที่ submodule

4) กลับไปดู submodules เราจะเห็นของที่เราเพิ่งเพิ่มไปด้วย สามารถ double-click เพื่อเปิดได้ จะเด้งไปหน้าต่างใหม่เลย

5) เมื่อเรา push code อะไรก็ตามที่ submodule แล้ว ไฟล์ submodules/{your_submodule} จะอัพเดตเสมอ ดังนั้น อย่าลืม push ไปด้วยนะ

6) ไปที่ settings.gradle ไป include เพิ่มและชี้ไป submodule ที่เราเพิ่มทำเข้าไปดังนี้

include ':module_name'
project(':module_name').projectDir = new File(submodule/{your_submodule}/{module_name}')

7) module อื่นๆที่ใช้ module นี้ ให้เพิ่มไปดังนี้

implementation project(':module_name')

จากนั้นก็ใช้งานได้เลย

แค่นี้เราก็สามารถใช้งาน submodule ได้แล้ว ส่วนการเปลี่ยน branch ต่างๆนั้น สามารถไปเปลี่ยนที่ repo ของ submodule นั้นได้เลย

ข้อควรระวัง : จริงๆเราสามารถเพิ่ม submodule ได้มากกว่า 1 ตัวนะ แต่เพิ่มเยอะมันก็อืดได้ ดังนั้นจงเพิ่มอย่างระวัง

Reference

  • อันนี้ยังไม่ถูกต้องนัก เพราะเรา clone มันออกมาก่อนแล้วใส่เข้ามา จะมีแค่ขั้นตอน 6 และ 7 เท่านั้น
Can not add submodule to android project
I am trying to import my submodule to my project but it always gives that error. Unable to resolve dependency for ‘:app@debug/compileClasspath’: Could not resolve project :sanservicelibrary.Open...
  • ขั้นตอนทั้งหมดนั้น จริงๆเคยมีพี่แชมป์ทำให้ตอนฟังใจ และทำแค่หนเดียว เลยจำไม่ได้ว่าทำยังไง ในทีมเลยได้พี่ยูทีมจอยมาช่วย เลยนั่งจดเลย จะได้ทำเองเป็น ก็ขอบคุณพี่ยูมา ณ ที่นี้ค่า

เขียนบล็อกเสร็จแล้ว แชร์เพจได้ เย้ๆ

อย่าลืมกด like กด share บทความกันด้วยนะคะ :)

Posted by MikkiPastel on Sunday, 10 December 2017

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.