วันพุธ, ธันวาคม 23, 2558

Gradle : คอนฟิกให้ gradle ใช้ repository อื่น (Artifactory)



gradle using other/local repository


    ที่บริษัทตั้ง maven mirror server, Artifactory เจ้าตัวนี้ทำให้ทีมพัฒนาฯที่ใช้ maven ไม่ต้องใช้ internet bandwidth ออกไปเอา dependency ต่างๆ อย่างสิ้นเปลือง

    เมื่อ config mirror maven repository ในเครื่องตัวเองแล้ว ถ้าเครื่องแรกไปเอามาได้แล้ว jar หรือ dependency ตัวนั้นๆจะถูกเก็บเอาไว้ใน artifactory คนที่สอง และคนต่อๆไปเมื่อเรียก mvn มันจะวิ่งไปตรวจสอบและเอา dependency จาก artifactory; ถ้าตัว artifactory ยังไม่มี มันจะดาวโหลดมาเก็บเอาไว้ให้

     Artifactory พัฒนาโดยทีมที่ทำ maven repository ที่ชื่อ bintray.com เจ้า artifactory community version นี้ open source และแจกจ่ายให้เอาไปใช้งานกันได้ฟรีๆ features เต็มๆ ต้องเสียเงิน มันทำ mirror ได้สารพัด npm, docker, maven, gradle

    โอยๆ เกริ่นมากเกิน จะบอกว่า ตั้ง artifactory ไว้ใช้งานเองแล้ว ไม่ได้ใช้ได้แต่ maven นะครับ gradle, ant, ivy ก็ใช้ได้ด้วย วิธี config gradle command ให้วิ่งหา dependency ผ่าน artifactory เราจะใช้ไฟล์ init.gradle

สร้างไฟล์ init.gradle ที่ USER_HOME/.gradle/

เช่น ถ้าเป็น macbook จะอยู่ที่ /Users/siritas_s/.gradle/

เนื้อหาข้างในไฟล์ /Users/siritas_s/.gradle/init.gradle
allprojects {
    repositories {
        mavenLocal()
        maven {
          url "http://repossvr/artifactory/repo"
        }
    }
}

mavenLocal() ก็คือให้มันหาจาก .m2/repository ที่ maven โหลดมาไว้นั่นเอง
maven { url "..." } คือให้มันวิ่งไปหาจาก artifactory server

เท่านี้เอง ครับ ถ้ารัน ./gradlew มันก็จะวิ่งไป mirror repository ให้แล้ว

ไม่มีความคิดเห็น :