แพลตฟอร์มเป้าหมายสำหรับ PDE Headless build ไม่ทำงาน

ขณะนี้ฉันกำลังพยายามทำให้ pde-build ที่ไม่มีหัวของฉันทำงาน แต่ฉันติดอยู่ในจุดที่ฉันไม่รู้ว่าจะดำเนินการต่ออย่างไร ปัญหาคือจะกำหนดแพลตฟอร์มเป้าหมายที่เกี่ยวข้องเพื่อคอมไพล์ปลั๊กอินได้อย่างไร ฉันมี build.bat พร้อมการโทรต่อไปนี้ (ทั้งหมดในบรรทัดเดียว!):

java -jar D:\target\eclipse\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 
-application org.eclipse.ant.core.antRunner 
-f D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml 
-Dbuilder=c:\pde-build\scripts %*

ฉันพยายามสร้างแพลตฟอร์ม eclipse เป้าหมายจากส่วนต่างๆ: eclipse SDK, RCP SDK, Delta Pack, PDE-SDK ในทุกชุดค่าผสม แต่ไม่มีส่วนใดที่ทำงานได้ดี

ฉันได้รับข้อผิดพลาดต่อไปนี้:

BUILD FAILED
D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml:18: Cannot fin
d ${eclipse.pdebuild.scripts}/build.xml imported from D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_2010011
4\scripts\productBuild\productBuild.xml

โดยที่ตัวแปร ${eclipse.pdebuild.scripts} ไม่ได้รับการแก้ไข ฉันยังพยายามให้พารามิเตอร์นี้ผ่านทางบรรทัดคำสั่ง แต่จากนั้นฉันก็ได้รับข้อผิดพลาดอื่นเกี่ยวกับงาน svn ที่ขาดหายไป ซึ่งทำให้เกิดความสับสนอย่างมาก เนื่องจากสิ่งนี้ทำงานกับการติดตั้ง eclipse ในเครื่องของฉันที่อ้างอิงถึง

เมื่อฉันแทนที่พาธจาก d:/target/eclipse ไปเป็นการติดตั้ง eclipse ในเครื่องของฉัน pde build ทำงานตามที่คาดไว้! สิ่งนี้ทำให้ฉันมาถึงจุดที่การกำหนดค่าของ eclipse เป้าหมายไม่ถูกต้อง แต่ตอนนี้ฉันไม่รู้ว่าจะกำหนดค่านี้อย่างไร!

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

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

ขอแสดงความนับถือแอนเดรียส


person Andreas    schedule 06.07.2010    source แหล่งที่มา
comment
สำหรับข้อมูล ตัวแปร ${eclipse.pdebuild.scripts} ถูกตั้งค่าในโค้ด Java โดย antrunner apllication (ในปลั๊กอิน org.eclipse.pde.build ในแพ็กเกจ org.eclipse.pde.internal.build.properties)   -  person Manuel Selva    schedule 06.07.2010


คำตอบ (3)


เมื่อดำเนินการ build แบบไม่มีส่วนหัว เป้าหมายสามารถแยกออกจาก eclipse ที่กำลังรัน build เองได้ ปัญหาที่คุณพบที่นี่คือ eclipse ที่คุณใช้เพื่อรัน build ไม่ได้ติดตั้ง PDE/Build อย่างถูกต้อง

นี่คือสาเหตุที่ไม่ได้ตั้งค่า ${eclipse.pdebuild.scripts} เนื่องจากไม่ได้ติดตั้ง PDE/Build ในอินสแตนซ์ eclipse นั้น บันเดิล org.eclipse.pde.build จึงไม่ได้รับการแก้ไข และโค้ดที่ตั้งค่าคุณสมบัตินี้ไม่เคยถูกเรียก ในทำนองเดียวกัน รายการคลาสพาธ ant ที่จำเป็นสำหรับภารกิจ PDE/Build จะไม่ได้รับการตั้งค่าอย่างถูกต้องเช่นกัน

คุณต้องมี Eclipse ที่ติดตั้ง PDE ไว้ภายในเพื่อรันบิลด์ แต่เป้าหมายสำหรับบิลด์สามารถแยกออกจากสิ่งนี้ได้

ในไฟล์ build.properties ที่พบภายใต้ -Dbuilder=c:\pde-build\scripts คุณสามารถตั้งค่า คุณสมบัติ:

  1. baseLocation นี่คือเส้นทางไปยังคราสที่เป็นเป้าหมายของคุณ
  2. buildDirectory นี่คือจุดที่บิลด์จะเกิดขึ้นจริง แหล่งที่มาจะถูกดึงไปยังปลั๊กอิน/ และฟีเจอร์/ โฟลเดอร์ย่อย แต่หากมีปลั๊กอินไบนารีอยู่ที่นี่อยู่แล้ว ปลั๊กอินเหล่านั้นก็จะกลายเป็นส่วนหนึ่งของเป้าหมายเช่นกัน
  3. pluginPath This is a list of paths (separated with ';' on windows or ':' on linux) containing other locations that should be considered as part of your target. These locations can be several things:
    1. The root of an eclipse-like install with plugins/ and features/ subfolders. This is a good way to provide the delta-pack instead of just unzipping it on top of an eclipse install.
    2. รากของโฟลเดอร์ที่มีลักษณะคล้ายพื้นที่ทำงาน โดยที่โฟลเดอร์ย่อยทั้งหมดถือเป็นปลั๊กอินหรือฟีเจอร์ ขึ้นอยู่กับการมีอยู่ของไฟล์ Manifest หรือ Feature.xml
    3. รากของบันเดิลหรือฟีเจอร์ หรือ jar สำหรับบันเดิล
  4. หากคุณกำลังสร้าง p2 build (p2.gathering = true) คุณยังสามารถจัดเตรียมที่เก็บ p2 ภายใต้ ${repoBaseLocation} ซึ่งจะถูกแปลงและวางไว้ใต้ ${transformedRepoLocation} และจะกลายเป็นส่วนหนึ่งของเป้าหมายของคุณ และข้อมูลเมตา p2 ที่นั่นจะได้รับ นำมาใช้ใหม่ ระหว่างการ build
person Andrew Niefer    schedule 06.07.2010
comment
สวัสดีแอนดรูว์ ขอบคุณสำหรับคำอธิบายที่ดี ฉันคิดว่าตอนนี้มันชัดเจนสำหรับฉันมากขึ้น! หวังว่าคนอื่นๆ ด้วยเช่นกัน ;-) - person Andreas; 07.07.2010

หลังจากการสอบสวนอยู่ระยะหนึ่ง ฉันพบว่าสิ่งที่ฉันทำผิดจนถึงตอนนี้ ดังที่ฉันได้กล่าวไว้ข้างต้น การกำหนดแพลตฟอร์มเป้าหมายนั้นไม่ใช่เรื่องง่ายเหมือนกับการคัดลอก SDK และปลั๊กอินลงในที่เดียว (เหมือนในช่วงแรก ๆ ของ eclipse dev)

วิธีแก้ปัญหาการทำงานในตอนนี้คือ: การคัดลอก eclipse SDK ไปยังตำแหน่งเป้าหมายและรันเวอร์ชันนี้ ติดตั้งภายในเครื่องมือ PDE ที่จำเป็นเพื่อเปิดใช้งานการพัฒนาปลั๊กอิน หลังจากนั้น ให้ปิด IDE และคัดลอก delta pack + ปลั๊กอิน svn ที่เกี่ยวข้อง (ฉันใช้ org.eclipse.pde.build.svn-1.0.1RC2 จาก sourceforge) ลงในแพลตฟอร์มเป้าหมาย เท่านี้ก็เสร็จเรียบร้อย ขณะนี้ PDE build แบบอัตโนมัติของฉันกำลังทำงานตามที่คาดไว้

ขณะนี้มีเพียงปัญหาเล็กน้อยเท่านั้นที่มีดังต่อไปนี้: ผลิตภัณฑ์ผลลัพธ์มีรายการเมนูเฉพาะ eclipse ซึ่งไม่มีเมื่อฉันรันสิ่งนี้จากภายใน dev-eclipse ของฉัน

มีคำแนะนำเกี่ยวกับเรื่องนั้นบ้างไหม?

person Andreas    schedule 06.07.2010

ฉันเพิ่งโพสต์คำตอบสำหรับคำถามของฉันในหัวข้อประเภทนี้ อาจช่วยคุณได้:

ผลิตภัณฑ์ปลั๊กอิน VS ผลิตภัณฑ์ฟีเจอร์

person Manuel Selva    schedule 06.07.2010
comment
สวัสดีมานูเอล ฉันเขียนคำตอบที่นี่ซึ่งนำฉันไปสู่วิธีแก้ปัญหาที่ใช้งานได้ แต่ฉันยังคงค้นหาแพลตฟอร์มเป้าหมายที่เหมาะสมที่สุด อย่างไรก็ตามผลิตภัณฑ์ของฉันมีปลั๊กอินที่จำเป็นทั้งหมดและสามารถเรียกใช้ได้ ฉันลองสิ่งนี้ด้วยปลั๊กอิน template+view ซึ่งส่งผลให้ได้ไฟล์ zip ขนาด 48MB ;-) - person Andreas; 06.07.2010