วิธีให้ Eclipse รับรู้การขึ้นต่อกันจาก SBT

ฉันกำลังพยายามหาวิธีทำให้ Eclipse รู้จักการพึ่งพาที่ดึงข้อมูลโดยใช้ SBT SBT ดาวน์โหลดการขึ้นต่อกันที่ถูกต้องและนำไปไว้ในไดเร็กทอรี ~/.ivy ของฉัน แต่ eclipse ไม่เห็น มีวิธีการทำเช่นนี้หรือไม่?

ขอบคุณ


person chiappone    schedule 30.01.2012    source แหล่งที่มา
comment
คุณยังยอมรับคำตอบเก่ามากกว่าคำตอบที่ใหม่กว่าหรือไม่?   -  person Andrew Norman    schedule 18.08.2016


คำตอบ (6)


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

ฉันถือว่าคุณกำลังใช้ปลั๊กอิน sbt-eclipse ( https://github.com/typesafehub/sbteclipse ) เมื่อฉันเพิ่มการพึ่งพาใหม่ให้กับโปรเจ็กต์ของฉัน (ซึ่งจริงๆ แล้วค่อนข้างหายาก) ฉันเพียงแค่สร้างไฟล์โปรเจ็กต์ eclipse ใหม่จากปลั๊กอิน ข้อเสียคือฉันมีโปรเจ็กต์หลายโมดูล และหลังจากที่ฉันรีเฟรชโปรเจ็กต์ใน eclipse ฉันจำเป็นต้องเพิ่มการพึ่งพาระหว่างโปรเจ็กต์อีกครั้งในตัวแก้ไขพาธของ eclipse build

อย่างที่ฉันบอกไปแล้วว่ามันค่อนข้างแฮ็ก แต่โดยรวมแล้วฉันไม่เสียเวลาทำมันมากนัก มันไม่สวยแต่ใช้งานได้

ขอให้โชคดีนะแอนดี้

person Andrew    schedule 30.01.2012
comment
ใช่แล้ว - นี่คือสิ่งที่ฉันทำเช่นกัน มันไม่สวยเท่าที่ควร แต่มันก็ใช้งานได้ - person Paul Butcher; 31.01.2012
comment
sbteclipse ยังเพิ่มการพึ่งพาโครงการอย่างถูกต้องหากตั้งค่าไว้ในไฟล์ sbt build ด้วย - person Jean-Philippe Pellet; 31.01.2012
comment
ใดๆ โปรดแจ้งให้เราทราบว่า sbteclipse ล้มเหลวสำหรับคุณในการสร้างการพึ่งพาระหว่างโครงการอย่างไร ควรใช้งานได้อย่างแน่นอนในรีลีสล่าสุด (1.5) และเหตุการณ์สำคัญล่าสุด (2.0.0-M1..M3) และสแน็ปช็อต (2.0.0-SNAPSHOTS) ฉันขอแนะนำให้คุณใช้รายชื่อผู้รับจดหมาย sbt และใช้คำนำหน้า [sbteclipse] ในบรรทัดหัวเรื่อง ขอบคุณ. เฮโกะ - person Heiko Seeberger; 31.01.2012
comment
@HeikoSeeberger: เนื่องจากรายชื่อผู้รับจดหมาย sbt กำลังยุติลง คุณช่วยแสดงวิธีแก้ปัญหาของ OP โดยไม่ต้องแฮ็คให้เราหน่อยได้ไหม - person RAbraham; 30.09.2013

หากคุณใช้ปลั๊กอิน sbteclipse สามารถทำได้ด้วยวิธีง่ายๆ ในประเภท sbt:

รีโหลด
eclipse with-source=true

จากนั้นใน eclipse ให้กด F5 บนโฟลเดอร์โปรเจ็กต์เพื่อรีเฟรช หรือคลิกขวาแล้วเลือก "รีเฟรช" แค่ใช้งานได้

person Arty    schedule 07.12.2012
comment
นี่ควรเป็นคำตอบที่ได้รับการโหวตมากที่สุดแทนที่จะเป็นคำตอบที่อยู่ในขณะนี้ ทำงานเหมือนมีเสน่ห์! - person gjain; 09.04.2014
comment
+1 สำหรับ with-source ที่อนุญาตให้นำทางโค้ดของการขึ้นต่อกันที่ฉันใช้จากภายใน Eclipse - person sscarduzio; 18.04.2014
comment
มันทำงานได้ดี เมื่อ Referenced Dependencies แสดงอยู่แล้วใน Eclipse - มันจะเพิ่มอันใหม่เข้าไป แต่ถ้าโครงการไม่แสดงการพึ่งพาอ้างอิงโดยตรง (ใช่ มันเกิดขึ้นกับฉัน) สิ่งนี้ไม่ได้ช่วยอะไร - person xmar; 26.02.2018

ฉันใช้ปลั๊กอิน Apache IvyDE สำหรับ Eclipse และฉันก็โชคดีมากขึ้นเมื่อใช้แนวทางนี้ เป็นเพียงที่อธิบายไว้ในเอกสาร sbt เก่า แต่ใช้ได้กับ sbt 0.11

ขั้นแรก ติดตั้งปลั๊กอิน IvyDE ใน Eclipse แล้วรีสตาร์ท

รันคำสั่ง sbt deliver-local - สิ่งนี้จะสร้างไฟล์ XML ivy ของการขึ้นต่อกันของคุณ

ใน Eclipse ใต้โปรเจ็กต์/คุณสมบัติของคุณ - Java Build Path - Libraries คลิก "เพิ่มไลบรารี" และเลือก "IvyDE Managed Dependencies" จากนั้นเลือกไฟล์ target/scala-2.9.1/ivy-projectversion xml

เมื่อคุณเพิ่มการพึ่งพาใหม่ให้กับ build.sbt ให้รันคำสั่ง sbt reload และ deliver-local อีกครั้ง จากนั้นคลิกขวาที่ไลบรารี Ivy สำหรับโปรเจ็กต์ของคุณใน Package Explorer ซึ่งจะมีชื่อว่า "target/scala-2.9.1/ivy-projectversion.xml [compile,test]" แล้วคลิกปุ่ม รายการเมนู "รีเฟรช" รายการที่สอง (ระหว่าง "รีเฟรช" และ "โหลดการตั้งค่าใหม่" - ไม่ใช่ "F5 Refresh" )

person cathalmcginley    schedule 01.02.2012
comment
ใช่ อันนี้คือวิธีแก้ปัญหาที่นี่ สิ่งที่ OP ต้องการคือการผสานรวม eclipse ดั้งเดิมกับ SBT และนี่คือสิ่งที่ใกล้เคียงที่สุด ด้วยสิ่งนี้ eclipse มองเห็นการพึ่งพา IVY จริง ๆ และใช้งานโดยกำเนิด - person Andrew Norman; 10.03.2016
comment
นี่เป็นการแก้ปัญหาที่ใหญ่ที่สุดของฉันด้วย eclipse/sbt และ eclipse scala IDE โดยรวม! - person Andrew Norman; 10.03.2016

ใน command prompt ให้ไปที่โฟลเดอร์ project แล้วพิมพ์

sbt eclipse

สิ่งนี้ควรสร้างรายการ .classpath ที่เหมาะสมในโปรเจ็กต์ eclipse

กลับไปที่ eclipse เลือกโปรเจ็กต์แล้ว กด f5 ซึ่งจะโหลด libs ที่อ้างอิงถึงอีกครั้ง

person aspdeepak    schedule 13.01.2014

สิ่งที่คุณต้องมีคือดำเนินการจากหน้าแรกของโครงการของคุณ:

sbt "eclipse with-source=true"

หรือเข้าสู่ sbt console แล้วเขียน:

eclipse with-source=true

BTW: ฉันไม่รู้ว่าตั้งแต่เดือนมกราคม 2555 มีบางอย่างเปลี่ยนแปลงไปหรือเปล่า แต่ตอนนี้มันดูง่ายขึ้นมาก

person freedev    schedule 12.03.2017

งานต่อไปนี้สำหรับฉัน:

1) ปิดโปรเจ็กต์ใน Eclipse

2) ใน File Explorer ของฉัน ให้เรียกดูโปรเจ็กต์ Eclipse ของฉัน ตรวจสอบให้แน่ใจว่ามองเห็นไฟล์ที่ซ่อนได้

3) เปิด .classpath ในโปรแกรมแก้ไขข้อความอย่างง่าย

4) คัดลอกรายการด้านล่าง ตัวอย่างเช่น ในโครงการปัจจุบันของฉัน มันคือ <classpathentry path="/home/natalie/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-1.8.jar" kind="lib"></classpathentry>

5) นำทางไปยังโฟลเดอร์ .ivy แคช จากนั้นไปที่ไลบรารีที่ฉันเพิ่มผ่าน sbt

6) คลิกขวาที่ไฟล์ jar เลือกคุณสมบัติ คัดลอกพาธและชื่อไฟล์ jar แล้วแทนที่ในรายการที่ฉันคัดลอกในขั้นตอนที่ 4

7) บันทึก .classpath

8) เปิดโครงการของฉันบน Eclipse

การขึ้นต่อกันใหม่พร้อมใช้งานแล้วใน Eclipse

person FreewheelNat    schedule 09.05.2013
comment
คำถามคือมีคนทำสิ่งนี้โดยอัตโนมัติและไม่ใช่ด้วยตนเองได้อย่างไร - person Ben; 15.11.2017