ยินดีต้อนรับสู่ Kotlin!
เป็นภาษาโปรแกรมโอเพ่นซอร์สที่พิมพ์คงที่ซึ่งสนับสนุนและพัฒนาโดย JetBrains และผู้มีส่วนร่วมโอเพ่นซอร์ส
ลิงค์ที่มีประโยชน์บางส่วน:
การรองรับการเขียนโปรแกรมแบบหลายแพลตฟอร์มถือเป็นหนึ่งในคุณประโยชน์หลักของ Kotlin ช่วยลดเวลาที่ใช้ในการเขียนและดูแลรักษาโค้ดเดียวกันสำหรับแพลตฟอร์มต่างๆ ในขณะที่ยังคงความยืดหยุ่นและประโยชน์ของการเขียนโปรแกรมแบบเนทีฟ
พื้นที่เก็บข้อมูลนี้ใช้คุณสมบัติ Gradle toolchains เพื่อเลือกและจัดสรร JDK ที่จำเป็นอัตโนมัติจากโครงการ AdoptOpenJdk
อีกทางหนึ่ง ยังคงสามารถจัดเตรียม JDK ที่จำเป็นผ่านตัวแปรสภาพแวดล้อมเท่านั้น (ดู gradle.properties สำหรับชื่อตัวแปรที่รองรับ) เพื่อให้แน่ใจว่า Gradle ใช้เฉพาะ JDK จากตัวแปรสภาพแวดล้อม - ปิดการใช้งานการตรวจจับอัตโนมัติ Gradle toolchain โดยส่ง -Porg.gradle.java.installations.auto-detect=false
ตัวเลือก (หรือใส่ลงใน $GRADLE_USER_HOME/gradle.properties
)
บน Windows คุณอาจต้องเพิ่มการตั้งค่าเส้นทางแบบยาวให้กับ repo:
git config core.longpaths true
โครงการนี้สร้างด้วย Gradle รัน Gradle เพื่อสร้างโปรเจ็กต์และรันการทดสอบโดยใช้คำสั่งต่อไปนี้บน Unix/macOS:
./gradlew <tasks-and-options>
หรือคำสั่งต่อไปนี้บน Windows:
gradlew <tasks-and-options>
ในการกำหนดค่าโปรเจ็กต์แรก gradle จะดาวน์โหลดและตั้งค่าการขึ้นต่อกัน
intellij-core
เป็นส่วนหนึ่งของคอมไพเลอร์บรรทัดคำสั่งและมีเฉพาะ API ที่จำเป็นเท่านั้นidea-full
คือ IntelliJ IDEA Community Edition เต็มรูปแบบที่จะใช้ในโมดูลปลั๊กอินการขึ้นต่อกันเหล่านี้มีขนาดค่อนข้างใหญ่ ดังนั้นขึ้นอยู่กับคุณภาพของการเชื่อมต่ออินเทอร์เน็ตของคุณ คุณอาจต้องเผชิญกับการหมดเวลาในการใช้งาน ในกรณีนี้ คุณสามารถเพิ่มการหมดเวลาได้โดยการระบุพารามิเตอร์บรรทัดคำสั่งต่อไปนี้ในการรันครั้งแรก:
./gradlew -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000
clean
- ผลลัพธ์การสร้างที่สะอาดdist
- ประกอบการแจกจ่ายคอมไพเลอร์ลงในโฟลเดอร์ dist/kotlinc/
install
- สร้างและติดตั้งสิ่งประดิษฐ์สาธารณะทั้งหมดลงในที่เก็บ Maven ในเครื่องcoreLibsTest
- สร้างและรันการทดสอบ stdlib, สะท้อนและทดสอบ kotlingradlePluginTest
- สร้างและรันการทดสอบปลั๊กอิน gradlecompilerTest
- สร้างและรันการทดสอบคอมไพเลอร์ทั้งหมด หากต้องการสร้าง TeamCity build ให้ใช้ -Pteamcity=true
flag บิลด์ในเครื่องไม่รัน proguard และปิดใช้งานการบีบอัด jar ตามค่าเริ่มต้น
ตัวเลือกเสริม: อาร์ติแฟกต์บางตัว ซึ่งส่วนใหญ่เป็นปลั๊กอิน Maven ถูกสร้างขึ้นแยกจาก Maven อ้างถึง libraries/ReadMe.md สำหรับรายละเอียด
หากต้องการสร้าง Kotlin/Native โปรดดูที่ kotlin-native/README.md
ขอแนะนำให้ใช้ Intellij IDEA เวอร์ชันล่าสุด (Community หรือ Ultimate Edition) คุณสามารถดาวน์โหลด IntelliJ IDEA ได้ที่นี่
หลังจากการโคลนโปรเจ็กต์ ให้นำเข้าโปรเจ็กต์ใน IntelliJ โดยเลือกไดเร็กทอรีโปรเจ็กต์ในกล่องโต้ตอบเปิดโปรเจ็กต์
สำหรับการใช้งานที่สะดวกกับการทดสอบคอมไพเลอร์ ขอแนะนำให้ใช้ Kotlin Compiler Test Helper
เรามีคุณลักษณะการตรวจสอบการพึ่งพาที่เปิดใช้งานในพื้นที่เก็บข้อมูลสำหรับ Gradle builds ทั้งหมด Gradle จะตรวจสอบแฮช (md5 และ sha256) ของการขึ้นต่อกันที่ใช้ และจะล้มเหลวในการสร้างโดยมีข้อผิดพลาดใน Dependency verification failed
เมื่อไม่มีสิ่งประดิษฐ์ในเครื่องหรือมีแฮชที่แตกต่างกันแสดงอยู่ในไฟล์การตรวจสอบ metadata.xml
คาดว่า verification-metadata.xml
ควรได้รับการอัปเดตด้วยคอมมิตที่แก้ไขบิลด์เท่านั้น มีเคล็ดลับบางประการในการดำเนินการอัปเดตดังกล่าว:
components
ของ verification-metadata.xml
เพื่อหลีกเลี่ยงการสะสมการอ้างอิงเก่าที่ไม่ได้ใช้ คุณสามารถใช้คำสั่งต่อไปนี้: # macOS
sed -i ' ' -e ' /<components>/,/</components>/d ' gradle/verification-metadata.xml
# Linux & Git for Windows
sed -i -e ' /<components>/,/</components>/d ' gradle/verification-metadata.xml
--write-verification-metadata
ของ Gradle (ตรวจสอบว่าการอัปเดตเกี่ยวข้องกับการเปลี่ยนแปลงของคุณ) ./gradlew --write-verification-metadata sha256,md5 -Pkotlin.native.enabled=true resolveDependencies
งาน resolveDependencies
แก้ไขการขึ้นต่อกันสำหรับทุกแพลตฟอร์ม รวมถึงการขึ้นต่อกันที่ดาวน์โหลดโดยปลั๊กอิน
คุณยังสามารถใช้สคริปต์ ./scripts/update-verification-metadata.sh
ซึ่งมีทั้งสองขั้นตอนเหล่านี้
โปรดทราบว่า:
darwin
, mac
, osx
, linux
, windows
) อย่าลืมเพิ่มสิ่งเหล่านั้นในการกำหนดค่า implicitDependencies
หรืออัปเดตงาน resolveDependencies
หากจำเป็น resolveDependencies
ควรแก้ไขการขึ้นต่อกันทั้งหมด รวมถึงการขึ้นต่อกันสำหรับแพลตฟอร์มที่แตกต่างกันlocal.properties
ในโฟลเดอร์โปรเจ็กต์ Kotlin ตรวจสอบให้แน่ใจว่าไฟล์นั้นไม่มี kotlin.native.enabled=false
มิฉะนั้น จะไม่สามารถเพิ่มการอ้างอิงเฉพาะเนทีฟลงในข้อมูลเมตาการยืนยันได้ เนื่องจาก local.properties
มีลำดับความสำคัญสูงกว่า -Pkotlin.native.enabled=true
ที่ระบุในคำสั่ง Gradle เราเผยแพร่เวอร์ชัน -dev
บ่อยครั้ง
สำหรับเวอร์ชัน -dev
คุณสามารถใช้รายการเวอร์ชันที่มีอยู่และรวมที่เก็บ maven นี้:
maven( " https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap " )
Kotlin ได้รับการเผยแพร่ภายใต้เงื่อนไขของ Apache License (เวอร์ชัน 2.0) ดูโฟลเดอร์ใบอนุญาตสำหรับรายละเอียด
โปรดอย่าลืมอ่านหลักเกณฑ์การมีส่วนร่วมของ Kotlin เพื่อเรียนรู้วิธีช่วยเหลือโครงการ