JavaRush /จาวาบล็อก /Random-TH /เริ่มต้นใช้งาน Maven Alfresco SDK ตอนที่ 1
CynepHy6
ระดับ
Великий Новгород

เริ่มต้นใช้งาน Maven Alfresco SDK ตอนที่ 1

เผยแพร่ในกลุ่ม

เริ่มต้นใช้งาน Alfresco Maven SDK

Jeff Potts มกราคม 2014 ตอนที่ 2 =>
  • การแนะนำ
  • แนวคิดพื้นฐาน
  • อาปาเช่ มาเวน
  • แพ็คเกจ Alfresco Modular (AMP)
  • อัลเฟรสโก มาเวน SDK
  • คุณจะพูดอะไรเกี่ยวกับ SDK ที่ใช้ Ant แบบเก่าได้บ้าง
  • โครงการแรกของคุณ
  • มาเปิดตัวกันเลย
  • มันคืออะไร?
  • คำสั่ง build อื่นๆ
  • การบันทึก

การแนะนำ

บทช่วยสอนนี้สร้างขึ้นสำหรับผู้ที่ต้องการกำหนดค่า Alfresco บนโปรเจ็กต์ในทางใดทางหนึ่ง ในตอนแรกคุณคิดว่า “นี่คืออะไร!” แต่สุดท้ายแล้วคุณจะได้เรียนรู้:

  • วิธีสร้างโปรเจ็กต์ Alfresco ตั้งแต่เริ่มต้นโดยใช้ Alfresco Maven SDK
  • สิ่งที่จะเกิดขึ้นขึ้นอยู่กับการตั้งค่าของคุณ
  • วิธีสร้างและรันการทดสอบ
  • วิธีสร้างสิ่งประดิษฐ์ที่เหมาะสมสำหรับการฝังหรือแบ่งปันกับชุมชน

บทช่วยสอนนี้ควรถือเป็นจุดเริ่มต้นก่อนที่คุณจะไปยังการเรียนรู้โดยละเอียดเพิ่มเติมเกี่ยวกับสิ่งต่างๆ เช่น การสร้างโมเดลเนื้อหา การปรับแต่งการกระทำและพฤติกรรม เวิร์กโฟลว์เพิ่มเติม หรือสคริปต์เว็บ

ก่อนที่เราจะเริ่มต้น การพูดนอกเรื่องสั้น ๆ: มีทางเลือกอื่นมากมายในการแก้ปัญหา ในบทช่วยสอนนี้ ฉันจะพาคุณไปพบกับวิธีที่ง่ายและตรงไปตรงมาที่สุด ซึ่งเป็นเส้นทางที่ปลอดภัยที่จะช่วยให้คุณเข้าใจได้เร็วขึ้น หลังจากนั้นคุณสามารถเปลี่ยนแปลงบางสิ่งหรือสำรวจเส้นทางอื่นได้หากต้องการ

แนวคิดพื้นฐาน.

คุณไม่จำเป็นต้องรู้มากเกินไปเกี่ยวกับ Maven, Alfresco หรือเหตุใดจึงต้องใช้ SDK นี้ก่อนที่จะเริ่มใช้งาน แต่ความรู้บางอย่างสามารถช่วยได้ในบางวิธี ดังนั้นให้ฉันอธิบายแนวคิดพื้นฐานให้คุณทราบอย่างรวดเร็ว

อาปาเช่ มาเวน

Apache Maven เป็นเครื่องมือการจัดการบิลด์ มันมีคุณสมบัติมากมาย แต่คุณสมบัติหลักคือช่วยประหยัดเวลาในการพิจารณาว่าโครงการของคุณใช้การขึ้นต่อกันแบบใด (และการขึ้นต่อกันของการขึ้นต่อกัน) Maven สามารถดึงข้อมูลและแคชการขึ้นต่อกันเหล่านี้ให้คุณได้ หากคุณเคยใช้เวลาพยายามค้นหาว่าไฟล์ JAR ใดมาหลังจากไฟล์ JAR ใด แสดงประโยชน์ของเครื่องมือดังกล่าวอย่างชัดเจน

แพ็คเกจ Alfresco Modular (AMP)

AMP เป็นไฟล์ ZIP ที่มีโครงสร้างไดเรกทอรีเป็นไปตามแบบแผนบางประการ ไฟล์ AMP ใช้เพื่อแชร์และปรับใช้การตั้งค่าบนแพลตฟอร์ม Alfresco ได้อย่างง่ายดาย หากโปรเจ็กต์ของคุณจำเป็นต้องสร้างการตั้งค่าแบบกำหนดเองที่ระดับ Repo (เว็บแอป/กลางแจ้ง) คุณจะต้องสร้าง "repo" ของ AMP หากโปรเจ็กต์ของคุณจำเป็นต้องสร้างการตั้งค่าในระดับการแชร์ (เว็บแอป /แชร์) คุณจะต้องสร้าง AMP แบบ "แชร์" เป็นเรื่องปกติสำหรับโปรเจ็กต์ที่เมื่อต้องเปลี่ยนแปลงทั้งสองระดับ คุณจะต้องสร้าง AMP ขึ้นมา 2 รายการ

อัลเฟรสโก มาเวน SDK

โปรแกรมเมอร์ในปัจจุบันคุ้นเคยกับเฟรมเวิร์กอันทรงพลังซึ่งไดเร็กทอรีว่างจะเต็มไปด้วยไฟล์ภายในหนึ่งนาที และในชั่วขณะถัดไปโปรเจ็กต์ของคุณก็พร้อมที่จะเปิดตัว เหตุใดนักพัฒนา Alfresco จึงควรยอมจ่ายน้อยลง?

เป้าหมายของ SDK ที่ใช้ Maven คือการสร้างเงื่อนไขที่ง่ายที่สุดที่เป็นไปได้สำหรับการเริ่มต้นการพัฒนาสำหรับ Alfresco SDK ประกอบด้วยเทมเพลตโปรเจ็กต์ ("ต้นแบบ" ในคำศัพท์เฉพาะของ Maven) และฟีเจอร์ในตัวบางอย่างที่บอก Maven ถึงวิธีสร้าง AMP และปรับใช้กับ Alfresco

หากคุณเขียนแอปพลิเคชันของคุณเองแยกจาก Alfresco และ Share WARs คุณไม่จำเป็นต้องมี Alfresco Maven SDK แต่หากคุณกำลังจะเขียนโค้ดที่ทำงานบนเว็บแอปพลิเคชันเหล่านี้ Alfresco Maven SDK คือจุดเริ่มต้น

แล้ว SDK ที่ใช้ Ant แบบเก่าล่ะ?

Alfresco ได้จัดเตรียม SDK ที่ดาวน์โหลดได้นี้มาตั้งแต่ต้น SDK มีคอนเทนเนอร์ ZIP ที่มีการขึ้นต่อกันที่จำเป็นสำหรับการคอมไพล์ ซอร์สโค้ด เอกสารประกอบ และตัวอย่างโปรเจ็กต์ Eclipse ตัวอย่างเหล่านี้ใช้ตัวสร้างแบบ Ant

แนวทางนี้ไม่มีอะไรผิดปกติ แต่แพลตฟอร์มการพัฒนาได้รับการพัฒนาแล้ว และ SDK ของ Ant ก็ล้มเหลวในการพัฒนาไปพร้อมกับพวกเขา ณ วันนี้ บางส่วนของตัวอย่างเหล่านี้ล้าสมัยไปแล้ว (เช่น API บริการเว็บแบบเนทีฟ หรืออินเทอร์เฟซผู้ใช้ Alfresco Explorer) และมีตัวอย่างไม่เพียงพอสำหรับส่วนที่สำคัญอย่างยิ่ง เช่น CMIS, เว็บสคริปต์ และเวิร์กโฟลว์ขั้นสูงที่ใช้ Activiti

นอกจากตัวอย่างที่ล้าสมัยแล้ว ยังจำเป็นต้องมี Ant SDK รุ่นเก่าอีกด้วย นักพัฒนากำลังทำงานมากเกินไป ด้วย Alfresco Maven SDK คุณไม่จำเป็นต้องดาวน์โหลดอะไรเลย เพียงแค่สร้างโปรเจ็กต์ของคุณและเริ่มเขียนโค้ด

ตอนนี้คุณมีความเข้าใจใน Apache Maven, AMP และ Alfresco Maven SDK ในระดับสูงแล้ว ถึงเวลาที่จะได้เห็นการดำเนินการทั้งหมดแล้ว

โครงการแรกของคุณ

ฉันจะแสดงให้คุณเห็นว่าการเริ่มต้นพัฒนาสำหรับ Alfresco โดยใช้ Alfresco Maven SDK นั้นง่ายดายเพียงใด ก่อนที่เราจะเริ่มฉันต้องเตือนคุณให้ติดตั้ง JDK 1.7 รวมถึงติดตั้ง Apache Maven 3 ด้วย คุณไม่จำเป็นต้องดาวน์โหลดสิ่งอื่นใด อย่างจริงจัง. แม้แต่อัลเฟรสโก

  1. สร้างไดเรกทอรีว่าง เราจะสร้างไดเร็กทอรีเพิ่มเติมในนั้นเร็วๆ นี้
  2. ตอนนี้เรามาสร้างโปรเจ็กต์ว่างกันดีกว่า สมมติว่าคุณต้องการสร้างบางสิ่งที่คุณจะปรับใช้กับพื้นที่เก็บข้อมูล Alfresco เช่น โมเดลเนื้อหาแบบกำหนดเอง การดำเนินการของกฎแบบกำหนดเองหลายรายการ เว็บสคริปต์ชุดใหม่ หรือกระบวนการทางธุรกิจของ Activiti บางอย่าง มันไม่สำคัญจริงๆ หากต้องการสร้างโปรเจ็กต์ใหม่ ให้รันคำสั่ง:
    ต้นแบบ mvn: สร้าง \
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven จะทำงานบางอย่างและขอให้คุณเลือก "archetype" ในที่สุด การเลือกพื้นฐานของคุณจากไลบรารีเทมเพลตโครงการ มีสองที่นี่ อันหนึ่งเรียกว่า "alfresco-amp-archetype" และอีกอันเรียกว่า "alfresco-allinone-archetype" เป้าหมายของเราคือการสร้าง AMP ที่สามารถนำไปใช้งานใน Alfresco ได้ ดังนั้นประเด็นแรกคือสิ่งที่เราต้องการ พิมพ์ 1 แล้วกด Enter
  4. ตอนนี้ Maven จะขอให้คุณระบุเวอร์ชันของเทมเพลตที่คุณจะใช้เป็นฐานสำหรับโปรเจ็กต์ของคุณ ปัจจุบันเวอร์ชันล่าสุดคือ 1.1.1 ซึ่งเป็นตัวเลือกที่ห้าในรายการ ดังนั้นกด 5 และ Enter
  5. Maven ถามเกี่ยวกับ groupId มันคล้ายกับ "แพ็คเกจ Java" ตัวอย่างของฉันมักจะมาจากการที่ฉันทำงานในบริษัทสมมติชื่อ SomeCo ดังนั้นฉันจะป้อน "com.someco" ที่นี่ พิมพ์สิ่งที่เหมาะสมกับคุณแล้วกด Enter
  6. ถัดไปคือ artifactId คิดว่ามันเป็นชื่อของโครงการของคุณ นี่จะกลายเป็นรหัส AMP ของคุณด้วย ดังนั้นให้เลือกรหัสพิเศษ คุณควรเพิ่มบรรทัด "-repo" ให้กับ artifactId ของคุณ เนื่องจากโมดูลนี้จะถูกสร้างขึ้นในพื้นที่เก็บข้อมูล ฉันจะตั้งชื่อของฉันว่า "someco-mvn-tutorial-repo" แล้วกด Enter

  7. ณ จุดนี้ Maven จะแสดงค่าที่คุณป้อน เพิ่มค่าเริ่มต้นอื่นๆ และขอให้คุณยืนยันการเลือกของคุณ หากคุณต้องการเปลี่ยนแปลงสิ่งใด คุณสามารถเลือก "N" แล้วทำการเปลี่ยนแปลงหรือ "Y" เพื่อดำเนินการต่อ คุณสามารถเปลี่ยนค่าเหล่านี้ในภายหลังได้เสมอหากจำเป็น กด "Y" จากนั้นกด Enter

ตอนนี้มาเวนจะทำงานบางอย่าง เมื่อเสร็จแล้วคุณจะได้รับสิ่งต่อไปนี้:

  • โครงการที่มีโครงสร้างเพื่อรองรับการพัฒนา Alfresco ของคุณ
  • ไฟล์การกำหนดค่าเริ่มต้น
  • โค้ด Java ขั้นต่ำสำหรับการทดสอบหน่วยเพิ่มเติมเพื่อตรวจสอบว่าทุกอย่างใช้งานได้
  • การกำหนดค่าที่จำเป็นเพื่อเรียกใช้อินสแตนซ์ Alfresco ภายในที่จำเป็นสำหรับการทดสอบ
  • ไฟล์ XML เริ่มต้น POM (Project Object Model) ที่บอก Maven ว่าโครงการของคุณมีการพึ่งพาอะไรบ้าง

มารันกันเถอะ

คุณยังไม่ได้อัปโหลดอะไรเลย คุณยังไม่ได้แก้ไขอะไรเลย สิ่งที่คุณทำคือบอกให้ Maven สร้างโปรเจ็กต์ตามเทมเพลต แต่ฉันมีข่าวดี: โปรเจ็กต์ของคุณพร้อมที่จะรันแล้ว

ลองสิ่งนี้:

cd someco-mvn-tutorial-repo.cd
การทดสอบการรวม mvn -Pamp-to-war

หากคุณดูที่ผลลัพธ์ คุณจะเห็นว่า Maven ดาวน์โหลดทุกสิ่งที่จำเป็นในการคอมไพล์โปรเจ็กต์ สร้าง AMP ปรับใช้ AMP กับ Alfresco WAR ปรับใช้ Alfresco WAR ไปยังเซิร์ฟเวอร์ Tomcat แบบฝัง และรัน ในที่สุดคุณจะเห็นสิ่งที่คล้ายกับ:

15-01-2557 18:01:19,339 ข้อมูล [repo.module.ModuleServiceImpl] [localhost-startStop-1] พบ 1 โมดูล
15-01-2557 18:01:19,480 ข้อมูล [repo.module.ModuleServiceImpl] [localhost-startStop-1] การติดตั้งโมดูล 'someco-mvn-tutorial-repo' เวอร์ชัน 1.0.1401151758

ซึ่งหมายความว่าโมดูลโครงการของคุณถูกสร้างขึ้นและได้รับการยอมรับจากเซิร์ฟเวอร์ Alfresco

หลังจากคุณเห็น:

16 ม.ค. 2014 8:38:20 น. org.apache.coyote.AbstractProtocol start INFO: การสตาร์ท ProtocolHandler ["http-bio-8080"]

คุณควรจะสามารถเปิดได้:

http://localhost:8080/alfresco

และเข้าสู่ระบบโดยใช้ "admin" และ "admin"

เมื่อคุณชื่นชมมันเสร็จแล้ว ให้กลับไปที่หน้าต่างที่คุณรันคำสั่ง Maven แล้วกด ctrl-c เพื่อปิดเซิร์ฟเวอร์

หากคุณได้รับข้อผิดพลาดหน่วยความจำไม่เพียงพอเมื่อรันการทดสอบการรวม คุณอาจต้องป้อนพารามิเตอร์ JVM บางตัวสำหรับตัวเลือกหน่วยความจำใน Maven วิธีแก้ปัญหาหนึ่งที่เป็นไปได้คือการตั้งค่าตัวแปรสภาพแวดล้อม MAVEN_OPTS ตัวอย่างเช่น ฉันตั้งค่าของฉันเป็น:

-Xmx1024M -XX:MaxPermSize=512ม

ใช้ MAVEN_OPTS เพื่อตั้งค่าให้เพียงพอเพื่อให้คุณไม่เห็นข้อผิดพลาดหน่วยความจำล้น

มันคืออะไร?

คุณได้ขอให้ Maven รัน "integration-test" เพื่อใช้โปรไฟล์ "amp-to-war" สิ่งนี้นำไปสู่การสร้างโปรเจ็กต์ ปรับใช้เป็น AMP กับ Alfresco WAR ใหม่ และรันเซิร์ฟเวอร์ Tomcat แบบฝัง หลังจากนั้น คุณสามารถเข้าสู่ระบบไคลเอนต์ Alfresco Explorer เก่า และทำงานกับพื้นที่เก็บข้อมูล เพื่อทดสอบโมดูลของคุณ

หากคุณดูในไดเร็กทอรีเป้าหมาย คุณจะเห็น AMP ที่สร้างขึ้นและใช้งานในภายหลังใน Alfresco WAR ในกรณีของฉันเรียกว่า "someco-mvn-tutorial-repo.amp" ไฟล์นี้คือสิ่งที่คุณควรมอบให้ทีมไอทีของคุณ หากคุณพร้อมที่จะใช้การเปลี่ยนแปลงระดับพื้นที่เก็บข้อมูลของคุณกับเซิร์ฟเวอร์ Alfresco ที่ใช้งานได้จริง

คำสั่ง Build อื่นๆ

คุณอาจไม่จำเป็นต้องเริ่มเซิร์ฟเวอร์ Alfresco และปล่อยให้เซิร์ฟเวอร์ทำงานเสมอไป หากคุณเพียงต้องการสร้างโปรเจ็กต์ รันการทดสอบหน่วย และทำแพ็กเกจ AMP คุณก็ทำสิ่งต่อไปนี้ได้

แพ็คเกจเอ็มวีเอ็น

หากคุณต้องการติดตั้ง AMP ภายในที่เก็บ Maven ในเครื่องของคุณ ให้รัน:

ติดตั้ง mvn

คุณอาจสังเกตเห็นว่าโปรเจ็กต์มีการทดสอบหน่วยอย่างง่ายเป็นค่าเริ่มต้น ตามค่าเริ่มต้น Maven จะทำการทดสอบหน่วยในโปรเจ็กต์ของคุณโดยอัตโนมัติ คุณสามารถดูสิ่งนี้ได้ในเอาต์พุตคอนโซล:

-------------------------------------------------- -------------------------------------------------- -----
 การทดสอบ
-------------------------------------------------- -------------------------------------------------- -----
กำลังรัน org.alfresco.demoamp.test.DemoComponentTest

เป็นแนวปฏิบัติที่ดีเพื่อให้แน่ใจว่าโปรเจ็กต์ของคุณรวมการทดสอบหน่วยไว้เสมอและรันทุกครั้งที่คุณสร้าง องค์กรหลายแห่งใช้เครื่องมือ CI (Continuous Integration) ที่ขึ้นอยู่กับการทดสอบเหล่านี้ หากคุณไม่ต้องการทำการทดสอบด้วยเหตุผลบางประการ คุณสามารถข้ามขั้นตอนนี้ได้:

ติดตั้ง mvn -DskipTests=true

หากคุณต้องการลบสิ่งที่คอมไพล์แล้วทั้งหมดที่ Maven สร้างขึ้นและเริ่มต้นใหม่ คุณสามารถเรียกใช้:

สะอาด

หากคุณต้องการลบฐานข้อมูลในตัว เนื้อหา Alfresco ที่บันทึกไว้ ดัชนี และบันทึกที่สร้างขึ้นเสมอเมื่อทำการทดสอบเซิร์ฟเวอร์ คุณสามารถเรียกใช้:

mvn สะอาด - ล้าง

ตอนนี้คุณรู้วิธีสร้างโปรเจ็กต์ Alfresco ใหม่โดยใช้เทมเพลตแล้ว และมีพื้นฐานการสร้างโดยมีหรือไม่มีการทดสอบ ขั้นตอนต่อไปคือการเรียนรู้วิธีทำงานกับโปรเจ็กต์ของคุณใน IDE

การบันทึก

ไฟล์ log4j.properties อยู่ในไดเร็กทอรีโมดูล ซึ่งไฟล์ log4j.properties จะรวมอยู่ด้วย

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

คุณอาจต้องการแทนที่ด้วยการตั้งค่าของคุณเองที่เหมาะกับโครงสร้างแพ็คเกจของคุณ

หากต้องการกำหนดค่า module.log.level คุณสามารถทำได้เมื่อคุณเริ่ม Maven เช่นนี้:

ติดตั้ง mvn -Dmodule.log.level=DEBUG

หรือคุณสามารถแก้ไข pom.xml และเพิ่มลงในคุณสมบัติได้ ในลักษณะนี้:

<module.log.level>ดีบัก</module.log.level>

หากคุณเปลี่ยน pom.xml AMP จะได้รับการตั้งค่าเหล่านี้เมื่อสร้างขึ้น และต่อมา WAR ที่ใช้งาน AMP จะเขียนบันทึก นี่อาจจะ (หรืออาจจะไม่ใช่) สิ่งที่คุณต้องการ หากคุณไม่แน่ใจ อาจเป็นการดีกว่าถ้าตั้งค่าโดยใช้บรรทัดคำสั่ง เนื่องจากจะป้องกันไม่ให้คุณทำค่าใน AMP ของคุณเสียหายโดยไม่ตั้งใจ

สถาปนิกอีซีเอ็ม


งานนี้ได้รับอนุญาตภายใต้Creative Commons Attribution-ShareAlike 3.0 Unported License ส่วนที่ 2 =>
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION