กลับไปหน้าบทความ

อ่าน 4 นาที

Rake (ซอฟต์แวร์)

Rakeเป็นซอฟต์แวร์จัดการงานและ เครื่องมือ อัตโนมัติในการสร้างที่สร้างโดยJim Weirichมันช่วยให้ผู้ใช้สามารถระบุงานและอธิบายการพึ่งพา รวมถึงจัดกลุ่มงานลงในเนมสเปซได้...

Rake (ซอฟต์แวร์)

(Learn how and when to remove this message)
คราด
นักพัฒนาจิม ไวริช
เวอร์ชันเสถียร
13.2.1 [ 1 ] / 5 เมษายน 2567 (2024-04-05)
เขียนเป็นทับทิม
ระบบปฏิบัติการข้ามแพลตฟอร์ม
พิมพ์เครื่องมือพัฒนาซอฟต์แวร์
ใบอนุญาตใบอนุญาต MIT
เว็บไซต์ruby.github.io/rake/
ที่เก็บข้อมูล
  • github.com/ruby/rake

Rakeเป็นซอฟต์แวร์จัดการงานและ เครื่องมือ อัตโนมัติในการสร้างที่สร้างโดยJim Weirichมันช่วยให้ผู้ใช้สามารถระบุงานและอธิบายการพึ่งพา รวมถึงจัดกลุ่มงานลงในเนมสเปซได้ มันคล้ายกับSConsและMake Rake เขียนด้วยภาษา Rubyและเป็นส่วนหนึ่งของไลบรารีมาตรฐานของ Ruby ตั้งแต่เวอร์ชัน 1.9 [ 2 ] [ 3 ]

ตัวอย่าง

งานที่ควรดำเนินการจะต้องถูกกำหนดไว้ในไฟล์การกำหนดค่าที่เรียกว่า Rakefile ไฟล์ Rakefile ไม่มีไวยากรณ์พิเศษและมีโค้ด Ruby ที่สามารถเรียกใช้งานได้[ 4 ]

งานต่างๆ

หน่วยพื้นฐานใน Rake คือ task แต่ละ task จะมีชื่อและบล็อกแอ็กชันที่กำหนดฟังก์ชันการทำงานของมัน โค้ดต่อไปนี้กำหนด task ที่ชื่อว่า greet ซึ่งจะแสดงข้อความ "Hello, Rake!" ลงในคอนโซล[ 5 ]

task :greet do puts "Hello, Rake!" end

เมื่อกำหนดงาน คุณสามารถเพิ่มการพึ่งพาได้ กล่าวคือ งานหนึ่งอาจขึ้นอยู่กับความสำเร็จของงานอื่น การเรียกใช้งาน "seed" จากตัวอย่างต่อไปนี้จะดำเนินการงาน "migrate" ก่อน จากนั้นจึงดำเนินการงาน "seed" ต่อไป[ 5 ]

task :seed => :migrate do # งานนี้จะทำงานหลังจาก task :migrate เสร็จสิ้น

งานต่างๆ ยังสามารถมีความหลากหลายมากขึ้นได้โดยการยอมรับอาร์กิวเมนต์ ตัวอย่างเช่น งาน "generate_report" จะรับวันที่เป็นอาร์กิวเมนต์ หากไม่มีการระบุอาร์กิวเมนต์ ระบบจะใช้วันที่ปัจจุบัน[ 5 ]

task :generate_report , [ :date ] do | t , args | report_date = args [ :date ] || Date . today # สร้างรายงานตามวันที่ที่ระบุend

งานประเภทพิเศษคืองานไฟล์ ซึ่งสามารถใช้เพื่อระบุงานสร้างไฟล์ได้ ตัวอย่างเช่น งานต่อไปนี้จะได้รับไฟล์ออบเจ็กต์สองไฟล์ คือ "ao" และ "bo" เพื่อสร้างโปรแกรมที่สามารถเรียกใช้งานได้[ 6 ]

file "prog" => [ "ao" , "bo" ] do | t | sh "cc -o #{ t . name } #{ t . prerequisites . join ( ' ' ) } " end

เครื่องมือที่มีประโยชน์อีกอย่างหนึ่งคือวิธีการอำนวยความสะดวกของไดเร็กทอรี ซึ่งสามารถใช้สร้างไดเร็กทอรีตามความต้องการได้[ 7 ]

ไดเร็กทอรี"testdata/examples/doc"

กฎ

เมื่อไฟล์ถูกระบุว่าเป็นข้อกำหนดเบื้องต้น แต่ไม่มีการกำหนดงานไฟล์สำหรับไฟล์นั้น Rake จะพยายามสร้างงานโดยพิจารณาจากรายการกฎที่ให้ไว้ใน Rakefile ตัวอย่างเช่น สมมติว่าเราพยายามเรียกใช้งาน "mycode.o" โดยไม่มีการกำหนดงานใดๆ สำหรับไฟล์นั้น หาก Rakefile มีกฎที่มีลักษณะดังนี้:

rule '.o' => '.c' do | t | sh "cc #{ t . source } -c -o #{ t . name } " end

กฎนี้จะสร้างงานใดๆ ก็ตามที่ลงท้ายด้วย ".o" โดยมีข้อกำหนดเบื้องต้นว่าต้องมีไฟล์ต้นฉบับที่มีนามสกุล ".c" อยู่ หาก Rake สามารถค้นหาไฟล์ชื่อ "mycode.c" ได้ มันจะสร้างงานที่คอมไพล์ "mycode.o" จาก "mycode.c" โดยอัตโนมัติ หากไฟล์ "mycode.c" ไม่มีอยู่ Rake จะพยายามสร้างกฎสำหรับไฟล์นั้นแบบเรียกซ้ำ

เมื่อสร้างงานจากกฎแล้ว คุณลักษณะแหล่งที่มาของงานจะถูกตั้งค่าเป็นไฟล์ต้นฉบับที่ตรงกัน ซึ่งช่วยให้ผู้ใช้สามารถเขียนกฎที่มีการกระทำที่อ้างอิงถึงไฟล์ต้นฉบับได้[ 8 ]

กฎขั้นสูง

สามารถใช้ regular expression ใดก็ได้เป็นรูปแบบกฎ นอกจากนี้ยังสามารถใช้ proc เพื่อคำนวณชื่อไฟล์ต้นฉบับได้ ซึ่งช่วยให้สามารถสร้างรูปแบบและแหล่งที่มาที่ซับซ้อนได้

กฎต่อไปนี้เทียบเท่ากับตัวอย่างข้างต้น:

rule ( /\.o$/ => -> ( t_name ){ t_name . sub /\.o$/ , '.c' }) do | t | sh "cc #{ t . source } -c -o #{ t . name } " end

หมายเหตุ: เนื่องจากข้อจำกัดทางไวยากรณ์ของ Ruby วงเล็บจึงจำเป็นต้องใส่ไว้รอบกฎเมื่ออาร์กิวเมนต์แรกเป็นนิพจน์ปกติ

กฎต่อไปนี้อาจใช้สำหรับไฟล์ Java: [ 9 ]

กฎ'.class' => -> ( t_name ){ t_name . sub ( /\.class$/ , '.java' ) . sub ( /^classes\// , 'src/' ) } do | t | java_compile ( t . source , t . name ) end

เนมสเปซ

เพื่อจัดระเบียบไฟล์ Rake ขนาดใหญ่ให้ดียิ่งขึ้น สามารถจัดกลุ่มงานต่างๆ ไว้ในเนมสเปซได้[ 10 ]ด้านล่างนี้คือตัวอย่างของสูตร Rake แบบง่ายๆ:

namespace :cake do desc 'ทำแพนเค้ก' task :pancake => [ :flour , :milk , :egg , :baking_powder ] do puts "sizzle" end task :butter do puts "หั่นเนย 3 ช้อนโต๊ะเป็นชิ้นเล็กๆ" end task :flour => :butter do puts "ใช้มือคลึงเนยที่หั่นเป็นชิ้นเล็กๆ เข้ากับแป้ง 1 1/2 ถ้วย" end task :milk do puts "เติมนม 1 1/4 ถ้วย" end task :egg do puts "เติมไข่ 1 ฟอง" end task :baking_powder do puts "เติมผงฟู 3 1/2 ช้อนชา" end end

ดูเพิ่มเติม

  • เอกสารประกอบการใช้งาน Rake
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Rake_(software)&oldid=1343961871 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ Rake (ซอฟต์แวร์)

Rakeเป็นซอฟต์แวร์จัดการงานและ เครื่องมือ อัตโนมัติในการสร้างที่สร้างโดยJim Weirichมันช่วยให้ผู้ใช้สามารถระบุงานและอธิบายการพึ่งพา รวมถึงจัดกลุ่มงานลงในเนมสเปซได้...

ตัวอย่าง

งานที่ควรดำเนินการจะต้องถูกกำหนดไว้ในไฟล์การกำหนดค่าที่เรียกว่า Rakefile ไฟล์ Rakefile ไม่มีไวยากรณ์พิเศษและมีโค้ด Ruby ที่สามารถเรียกใช้งานได้ [ 4 ]

งานต่างๆ

หน่วยพื้นฐานใน Rake คือ task แต่ละ task จะมีชื่อและบล็อกแอ็กชันที่กำหนดฟังก์ชันการทำงานของมัน โค้ดต่อไปนี้กำหนด task ที่ชื่อว่า greet ซึ่งจะแสดงข้อความ "Hello, Rake!" ลงในคอนโซล [ 5 ]

กฎ

เมื่อไฟล์ถูกระบุว่าเป็นข้อกำหนดเบื้องต้น แต่ไม่มีการกำหนดงานไฟล์สำหรับไฟล์นั้น Rake จะพยายามสร้างงานโดยพิจารณาจากรายการกฎที่ให้ไว้ใน Rakefile ตัวอย่างเช่น สมมติว่าเราพยายามเรียกใช้งาน "mycode.