วันอังคาร, พฤษภาคม 26, 2558

เซตอัพ Maven, Spring Boot (spring-boot:run) กับ JRebel

   มีโปรเจคหนึ่งของผมเป็น java web application คุมด้วย maven แล้วผมอยากจะเรียกคำสั่ง mvn spring-boot:run พร้อมใช้งาน jrebel ไปด้วย

1. สร้างไฟล์ rebel.xml ก่อน เอาไว้ที่ src/main/resources
2. อ้างอิงตามเอกสารของ zeroturnaround เราใส่ content ของไฟล์ตามนี้
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
  <classpath>
    <dir name="[absolute path to]/target/classes/"/>
  </classpath>
</application>

4. หากมี jar file ที่อยากให้ jrebel reload ให้ด้วย (jar library ที่อยากให้มัน reload คือ jar ที่ทำขึ้นมาใช้จากอีกโปรเจคหนึ่ง)
ก้อเพิ่มแบบนี้

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
  <classpath>
    <dir name="[absolute path to]/src/main/resources/"/>
    <dir name="[absolute path to]/target/classes/"/>
    <jar name="[absolute path to a jar file].jar"></jar>
  </classpath>
</application>

path ไปยัง jar library ผมใช้วิธีชี้ไปที่ .m2/repository ,ที่ maven โหลดมา cache ในเครื่องเรา
เช่น /Users/dahoba/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar

5. เวลา execute mvn spring-boot:run เพิ่ม option แบบนี้

$ mvn spring-boot:run -Drun.agent=[/Users/dahoba/app/jrebel-nightly/jrebel]/jrebel.jar

- เพิ่ม -Drun.agent เข้าไป
- path ใน [ ] คือ absolute path ไปยัง jrebel.jar ที่ติดตั้งอยู่ในเครื่อง

เท่านี้เอง ใช้งาน jrebel ให้มันช่วย reload โปรเจค ที่เป็น spring-boot + maven ได้แล้ว



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