ช้อน
Spoon เป็นไลบรารีโอเพ่นซอร์สสำหรับวิเคราะห์ เขียนใหม่ แปลง และแปลงซอร์สโค้ด Java แยกวิเคราะห์ไฟล์ต้นฉบับเพื่อสร้าง AST ที่ออกแบบมาอย่างดีพร้อม API การวิเคราะห์และการเปลี่ยนแปลงที่ทรงพลัง รองรับเวอร์ชัน Java สมัยใหม่จนถึง Java 20 Spoon เป็นโครงการโอเพ่นซอร์สอย่างเป็นทางการของ Inria และเป็นสมาชิกของกลุ่มโอเพ่นซอร์ส OW2
เอกสารประกอบ
เอกสารอย่างเป็นทางการล่าสุดมีอยู่ที่ https://spoon.gforge.inria.fr/
การใช้งานทางวิชาการ
หากคุณใช้ Spoon เพื่อวัตถุประสงค์ทางวิชาการ โปรดอ้างอิง: Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, Lionel Seinturier “Spoon: ไลบรารีสำหรับการวิเคราะห์และการแปลงซอร์สโค้ด Java” ในซอฟต์แวร์: การปฏิบัติและประสบการณ์, Wiley-Blackwell, 2015 ดอย: 10.1002/spe.2346
@article{pawlak:hal-01169705,
TITLE = "{Spoon: A Library for Implementing Analyses and Transformations of Java Source Code}",
AUTHOR = {Pawlak, Renaud and Monperrus, Martin and Petitprez, Nicolas and Noguera, Carlos and Seinturier, Lionel},
JOURNAL = "{Software: Practice and Experience}",
PUBLISHER = "{Wiley-Blackwell}",
PAGES = {1155-1179},
VOLUME = {46},
URL = {https://hal.archives-ouvertes.fr/hal-01078532/document},
YEAR = {2015},
doi = {10.1002/spe.2346},
}
การสนับสนุนอย่างมืออาชีพ
หากคุณต้องการความช่วยเหลืออย่างมืออาชีพเกี่ยวกับ Spoon (การพัฒนา การฝึกอบรม การขยายเวลา) คุณสามารถแสดงความคิดเห็นได้ที่ #3251
เริ่มต้นใช้งานใน 2 วินาที
เวอร์ชัน Java: Spoon เวอร์ชัน 10 ขึ้นไป ต้องใช้ Java 11 ขึ้นไป Spoon 9.1.0 เป็นรุ่นสุดท้ายของ Spoon ที่เข้ากันได้กับ Java 8 และเราไม่ได้วางแผนที่จะแบ็คพอร์ตการแก้ไขข้อบกพร่องหรือฟีเจอร์ใดๆ ให้กับ Spoon 9 โปรดทราบว่าแน่นอนว่า Spoon ยังคงใช้ซอร์สโค้ดสำหรับ Java เวอร์ชันเก่าได้ แต่จำเป็นต้องมี JDK 11+ เพื่อวิ่ง
รับเวอร์ชันเสถียรล่าสุดด้วย Maven ดู https://search.maven.org/artifact/fr.inria.gforge.spoon/spoon-core
และเริ่มใช้มัน:
CtClass l = Launcher . parseClass ( "class A { void m() { System.out.println( " yeah " );} }" );
เอกสารประกอบ:
- เอกสารอ้างอิง: https://spoon.gforge.inria.fr/ (ประกอบด้วยเนื้อหาของโฟลเดอร์ doc)
- ตัวอย่างโค้ด: https://github.com/SpoonLabs/spoon-examples
- วิดีโอ: Spoon: Getting Started - Simon Urli @ OW2Con'18 (ปารีส), Generate Test Assertion with Spoon - Benjamin Danglot @ OW2Con'17 (ปารีส)
มีส่วนร่วมภายใน 2 วินาที
สร้างคำขอดึงครั้งแรกของคุณเพื่อปรับปรุงเอกสาร โปรดดูเอกสาร! ดำเนินการแก้ไขข้อบกพร่องครั้งแรกของคุณ! ชุมชนมีใจกว้าง ให้ความเคารพ และอดทน ยินดีรับความช่วยเหลือจากภายนอกทั้งหมด
ปรัชญาการออกแบบ
R1) metamodel ของ Spoon นั้นใกล้เคียงกับแนวคิดทางภาษามากที่สุด
R2) โปรแกรมแบบ Spoon สมบูรณ์และมีเสียง
R3) เวอร์ชันข้อความของโมเดล Spoon มีรูปแบบที่ดีและมีความหมายเทียบเท่ากับโปรแกรมต้นฉบับ
R4) API การวิเคราะห์และการเปลี่ยนแปลงนั้นใช้งานง่ายและสม่ำเสมอ
R5) ตัวดำเนินการแปลงได้รับการออกแบบมาเพื่อเตือนโดยเร็วที่สุดเกี่ยวกับโปรแกรมที่ไม่ถูกต้อง ซึ่งทำได้โดยใช้การตรวจสอบประเภทคงที่หรือการตรวจสอบแบบไดนามิกเมื่อใช้ตัวดำเนินการ
R6) เมื่อเป็นไปได้ เวอร์ชันข้อความของโมเดล Spoon จะใกล้เคียงกับเวอร์ชันต้นฉบับ
กำลังรวบรวม
ในการคอมไพล์ Spoon คุณต้องมี Java Development Kit (JDK) และ Maven:
git clone https://github.com/INRIA/spoon
cd spoon
mvn compile
หากต้องการรันการทดสอบ:
ดาวน์โหลด
เวอร์ชันล่าสุด: https://search.maven.org/remote_content?g=fr.inria.gforge.spoon&a=spoon-core&v=LATEST&c=jar-with-dependencies - Javadoc
มาเวน:
< dependency >
< groupId >fr.inria.gforge.spoon</ groupId >
< artifactId >spoon-core</ artifactId >
<!-- See rendered release value at https://spoon.gforge.inria.fr/ -->
< version >{{site.spoon_release}}</ version >
</ dependency >
ข่าวประชาสัมพันธ์
- 31 สิงหาคม 2023, Spoon 10.4.1 (บันทึกการเปลี่ยนแปลง)
- 6 ก.ค. 2023, Spoon 10.4.0 (บันทึกการเปลี่ยนแปลง)
- 13 มีนาคม 2566, Spoon 10.3.0 (บันทึกการเปลี่ยนแปลง)
- ต.ค. 2022, Spoon 10.2.0 (บันทึกการเปลี่ยนแปลง)
- เมษายน 2022, Spoon 10.1.0 (บันทึกการเปลี่ยนแปลง)
- ตุลาคม 2021, Spoon 10.0.0 (บันทึกการเปลี่ยนแปลง)
- สิงหาคม 2021: Spoon 9.1.0 (บันทึกการเปลี่ยนแปลง)
- มีนาคม 2021: Spoon 9.0.0 (บันทึกการเปลี่ยนแปลง)
- ตุลาคม 2020: Spoon 8.3.0 (บันทึกการเปลี่ยนแปลง)
- กรกฎาคม 2020: Spoon 8.2.0 (บันทึกการเปลี่ยนแปลง)
- มีนาคม 2020: Spoon 8.1.0 (บันทึกการเปลี่ยนแปลง)
- พฤศจิกายน 2019, Spoon 8.0.0 (บันทึกการเปลี่ยนแปลง)
- กรกฎาคม 2019: Spoon 7.5.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- พฤษภาคม 2019: Spoon 7.4.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 10 กุมภาพันธ์ 2019: Spoon 7.3.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 4 ธันวาคม 2018: Spoon 7.2.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 10 ตุลาคม 2018: Spoon 7.1.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 4 กรกฎาคม 2018: Spoon 7.0.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 8 มีนาคม 2018: Spoon 6.2.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 20 ธันวาคม 2017: Spoon 6.1.0 เปิดตัวแล้ว สุขสันต์วันคริสต์มาส! - (บันทึกการเปลี่ยนแปลง)
- 17 พฤศจิกายน 2017: Spoon 6.0.0 เปิดตัวแล้ว! ตรวจสอบ (บันทึกการเปลี่ยนแปลง) เนื่องจากมีการเปลี่ยนแปลงที่เข้ากันไม่ได้บางประการ
- 6 กันยายน 2017: Spoon 5.9.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง) การ กลับมาทำงานอีกครั้ง !
- 11 กรกฎาคม 2017: Spoon 5.8.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง) เปิดตัวช่วงฤดูร้อน ? หากต้องการเป็นที่ต้องการจากอันก่อนหน้า: แก้ไขข้อบกพร่องมากมาย
- 1 มิถุนายน 2017: Spoon 5.7.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 16 มีนาคม 2017: Spoon 5.6.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง) การเปิดตัวช่วงฤดูใบไม้ผลิ :-)
- 11 มกราคม 2017: Spoon 5.5.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง) สวัสดีปีใหม่!
- 27 ตุลาคม 2559: Spoon 5.4.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 19 กันยายน 2559: Spoon 5.3.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 30 มิถุนายน 2559: Spoon 5.2.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 22 มิถุนายน 2559: Spoon 5.1.1 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 21 มีนาคม 2559: Spoon 5.1.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 12 กุมภาพันธ์ 2559: Spoon 5.0.2 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 3 กุมภาพันธ์ 2559: Spoon 5.0.1 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 25 มกราคม 2559: Spoon 5.0.0 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 18 พฤศจิกายน 2558: Spoon 4.4.1 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 16 พฤศจิกายน 2558: Spoon 4.4.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 22 กันยายน 2558: Spoon 4.3.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 15 มิถุนายน 2558: Spoon 4.2.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 7 พฤษภาคม 2558: Spoon 4.1.0 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 8 เมษายน 2558: Spoon 4.0.0 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 11 กุมภาพันธ์ 2558: Spoon 3.1 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 9 ธันวาคม 2014: Spoon 3.0 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 12 พฤศจิกายน 2014: Spoon 2.4 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 9 ตุลาคม 2014: Spoon 2.3.1 เปิดตัวแล้ว (บันทึกการเปลี่ยนแปลง)
- 12 กันยายน 2014: Spoon 2.1 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 2 เมษายน 2014: Spoon 2.0 เปิดตัว (บันทึกการเปลี่ยนแปลง)
- 30 กันยายน 2556: Spoon 1.6 เปิดตัว
- 12 เมษายน 2555: Spoon 1.5 เปิดตัว
ใบอนุญาต
Spoon เป็นบริการฟรีและโอเพ่นซอร์ส มีลิขสิทธิ์สองครั้งภายใต้ (ใบอนุญาต CeCILL-C - ภาษาฝรั่งเศสเทียบเท่ากับ LGPL) และใบอนุญาต MIT
เจโปรไฟล์
Spoon ได้รับการพัฒนาด้วยความช่วยเหลือของ JProfiler ซึ่งเป็นเครื่องมือสร้างโปรไฟล์ Java โดย ej-technologies GmbH JProfiler สนับสนุนการพัฒนา Spoon โดยให้บริการ Java Profiler ที่มีฟีเจอร์ครบถ้วนฟรี เราขอขอบคุณ ej-technologies GmbH สำหรับการสนับสนุนนี้
ผู้ร่วมให้ข้อมูล Github
รายการนี้สร้างโดย chore/generate-contributor-list.py
หากคุณไม่อยู่ในรายชื่อหรือต้องการทราบชื่อนามสกุล กรุณาโพสต์ไปที่ #3909
- อดัมจรัน
- อัลซิดิส ฟอนเซก้า
- อเล็กซานเดอร์ โชปอฟ
- อามาน ชาร์มา
- แอนดรูว์โบกี้
- อังเดร ครูซ
- อันเดร ซิลวา
- อองตวน มอตติเยร์
- แอนตัน ไลเซลล์
- อาร์จิอุส
- อาร์โนด์ บลูอิน
- อาร์เซนฮี
- อาร์แทมม์
- อาเธอร์ บอช
- อาร์วิด ซิเบรอฟ
- อารยัน
- อชูทอช กุมาร์ เวอร์มา
- มีประโยชน์
- แอกเซล ฮาววินด์
- เบนจามิน ดังลอต
- เบอนัวต์ คอร์นู
- คาร์ลอส โนเกร่า
- เซกี กุลคู
- แชมป์
- เสน่ห์
- คริสสแควร์
- คริสตอฟ ดูโฟร์
- คริสโตเฟอร์ สโตกส์
- เคลเมนส์ บาร์ตซ์
- เคลมองต์ โฟร์เนียร์
- ซีซาร์ โซโต บาเลโร
- แดเนียล บ็อบเบิร์ต
- ดาริอุส ซาส
- เดวิด เบอร์นาร์ด
- ดิดิเยร์ ดอนเซซ
- ดิออร์เซต ยานน์
- โดโรตา คอปซิค
- ดูโฟซ์
- ดเวย์นบ
- ดียะ-เทล
- เอ็ดดี้ ที
- เอกอร์ เบรดิคิน
- ฟาเบียน ดูมินี่
- แฟนลอง
- ฟางเจิ้น
- สิ่งที่ชอบ
- ฟาวิโอ เดอมาร์โก
- เฟอร์นันดา มาเดราล
- ฟิลิป คราคอฟสกี้
- กาเบรียล ชาเปรอน บูร์โกส
- กิบาห์โจ
- บอทการกระทำ GitHub
- กลัคจาง
- เกรเกอร์ ไซท์ลิงเกอร์
- gtoison
- กิโยม ทอยซง
- เจราร์ด ปาลิโกต์
- ฮันเนส กรูล
- ฮาริส อัดเซโมวิช
- เฮคเตอร์เอสเอ็ม
- เฮนรี่ ชู
- แอร์เว บูเตมี
- โฮเรีย คอนสแตนติน
- อิ-อัล-อิสตันเนน
- intrigus-lgtm
- จาคอบบราวน์
- ยาน กาลินสกี้
- จอน
- ไคหลัว
- ลักษยา อากราวาล
- เลเวนตอฟ
- ลิโอเนล เซนตูริเยร์
- โลดาร์ต
- ลูคัส
- ลูคัส เครจซี
- ลุค เมอร์ริค
- มาร์เซล แมนเซียร์
- มาร์เซล สไตน์เบ็ค
- มาร์ติน มอนเพอร์รัส
- มาร์ติน วิทลิงเกอร์
- มาร์ตินวิตต์
- มาติอัส มาร์ติเนซ
- แม็กซิม สเตฟานอฟ
- แม็กซิม คลีเมนท์
- เมห์ดี เคย์ตู
- ไมเคิล เทเก้
- มิคาเอล อิสเตรีย
- มิเกล โซซินโญ่ รามาลโญ่
- มิคาเอล ฟอร์สเบิร์ก
- นายไพน์
- มูฮัมหมัด อาลี เอเคเบย์
- นิโคลัส ฮาร์แรนด์
- นิโคลัส เพสเซมิเยร์
- นิโคลัส เปอตีเพรซ
- โนอาห์ ซานต์ชี-คูนีย์
- โอลิวิเยร์ บาเรส์
- ออนเดรจ เชเบค
- แพทริค ชมิตต์
- พาเวล โวจเทคอฟสกี้
- เปอร์รอกซิด90
- ฟิลิปเป้ ออมเบรดันน์
- ฟิลลิป ชิคเทล
- ปริยังกา-28
- เควนติน เลอ ดิลาเวเรค
- เรย์ม็อก
- เรอโนด์ ภาลลักษณ์
- เรซา การิบี
- รีส คอมป์ตัน
- ริก เคลล็อกก์
- ไรนาร์ด ฟาน ทอนเดอร์
- โรฮิเตช กุมาร์ เจน
- โรมัน เลเวนตอฟ
- เรียวตะ ฮิโยชิ
- ซานเดอร์ โพลกสมา
- ซานโตส-ซามูเอล
- สกู๊ตตี้
- สกอตต์ ดิกเคอร์สัน
- สก็อตต์ พินเวลล์
- เซบาสเตียน ลาเมลาส มาร์โกเต
- เซอร์เกย์ เฟโดรอฟ
- ชานทนุ
- ไซมอน ลาร์เซ่น
- ไซมอน อูร์ลี
- สเปนเซอร์ วิลเลียมส์
- srl
- ST0นิววอลล์
- สเตฟาน วูล์ฟ
- บอท StepSecurity
- เซบาสเตียน เบอร์ทรานด์
- บอทช้อน
- ติโม ไซท์ซ
- โธมัส ดูริเยอซ์
- ติอาโกดร์คาร์วัลโญ่
- โทมัสซ์ ซีลินสกี้
- เออร์ส เคลเลอร์
- วิคเตอร์
- วินเชนโซ มัสโก
- โวล์ฟกัง ชมีซิง
- วอเตอร์ สมีงค์
- รูลิคเก้
- ยานน์ ดิออร์เชต์
- ยอกยา ทิวลิป กาเมจ
- จางซินตง
- ดมิทรี