Bagaimana agar Eclipse mengenali dependensi dari SBT

Saya mencoba mencari cara untuk membuat Eclipse mengenali dependensi yang diambil menggunakan SBT? SBT mengunduh dependensi yang benar dan meletakkannya di direktori ~/.ivy saya tetapi Eclipse tidak melihatnya. Apakah ada cara untuk melakukan ini?

terima kasih


person chiappone    schedule 30.01.2012    source sumber
comment
apakah Anda masih menerima jawaban lama dibandingkan jawaban baru?   -  person Andrew Norman    schedule 18.08.2016


Jawaban (6)


Ini mungkin bukan jawaban yang Anda cari dan saya akui ini tidak elegan tetapi saat ini berhasil untuk saya, artinya menurut saya dibutuhkan lebih sedikit waktu bagi saya untuk melakukan hal berikut secara berkala daripada meneliti dan menemukan solusi yang lebih elegan.

Saya berasumsi Anda menggunakan plugin sbt-Eclipse ( https://github.com/typesafehub/sbteclipse ). Ketika saya menambahkan dependensi baru ke proyek saya (yang sebenarnya cukup langka), saya cukup membuat ulang file proyek Eclipse saya dari plugin. Kelemahan dari ini adalah saya memiliki beberapa proyek modul dan setelah saya menyegarkan proyek di Eclipse saya perlu menambahkan kembali dependensi antar proyek di editor jalur pembangunan Eclipse.

Seperti yang saya sebutkan, ini cukup rumit tetapi secara keseluruhan saya tidak kehilangan banyak waktu untuk melakukannya. Itu tidak cantik tapi berhasil.

Semoga beruntung, Andi

person Andrew    schedule 30.01.2012
comment
Ya - ini juga yang saya lakukan. Ini tidak secantik mungkin, tapi berhasil. - person Paul Butcher; 31.01.2012
comment
sbteclipse juga menambahkan dependensi proyek dengan benar jika dependensi tersebut juga diatur dalam file build sbt. - person Jean-Philippe Pellet; 31.01.2012
comment
Ada, Tolong beri tahu saya bagaimana sbteclipse gagal bagi Anda dalam membuat dependensi antar proyek. Ini pasti dapat berfungsi di rilis terbaru (1.5) dan pencapaian terbaru (2.0.0-M1..M3) dan snapshot (2.0.0-SNAPSHOT). Saya sarankan Anda menggunakan milis sbt dan menggunakan awalan [sbteclipse] di baris subjek. Terima kasih. Heiko - person Heiko Seeberger; 31.01.2012
comment
@HeikoSeeberger: Karena milis sbt sedang dihapus, bisakah Anda menunjukkan kepada kami cara menyelesaikan masalah OP tanpa meretas? - person RAbraham; 30.09.2013

Jika Anda menggunakan plugin sbteclipse, ini dapat dicapai dengan cara yang sederhana. Dalam tipe sbt:

muat ulang
gerhana dengan-sumber=true

Kemudian di Eclipse, tekan F5 pada folder proyek untuk menyegarkannya. Atau klik kanan dan pilih "Segarkan". Hanya berfungsi.

person Arty    schedule 07.12.2012
comment
Ini seharusnya menjadi jawaban yang paling banyak mendapat suara positif, bukan jawaban yang ada saat ini. Bekerja seperti pesona! - person gjain; 09.04.2014
comment
+1 untuk dengan sumber yang memungkinkan untuk menavigasi kode dependensi yang saya gunakan dari dalam Eclipse. - person sscarduzio; 18.04.2014
comment
Ini berfungsi dengan baik, ketika Ketergantungan yang Direferensikan sudah ditampilkan di Eclipse - ia menambahkan yang baru. Tetapi jika proyek secara langsung tidak menampilkan Ketergantungan yang Direferensikan (ya, itu terjadi pada saya), ini tidak membantu. - person xmar; 26.02.2018

Saya menggunakan plugin Apache IvyDE untuk Eclipse, dan saya lebih beruntung dengan pendekatan ini. Ini hanya dijelaskan dalam dokumen sbt lama, tetapi berfungsi dengan sbt 0.11

Pertama, instal plugin IvyDE di Eclipse dan restart.

Jalankan perintah sbt deliver-local - ini akan membuat file XML ivy dari dependensi Anda.

Di Eclipse, di bawah Project/Properties - Java Build Path - Libraries, klik "Tambahkan Perpustakaan" dan pilih "IvyDE Managed Dependencies" lalu pilih file target/scala-2.9.1/ivy-projectversion. xml

Saat Anda menambahkan ketergantungan baru ke build.sbt, jalankan perintah sbt reload dan deliver-local lagi. Kemudian klik kanan perpustakaan Ivy untuk proyek Anda di Package Explorer - itu akan disebut "target/scala-2.9.1/ivy-projectversion.xml [compile,test]", dan klik item menu "Refresh" kedua (antara "Refresh" dan "Reload Settings" - bukan "F5 Refresh" ).

person cathalmcginley    schedule 01.02.2012
comment
ya, ini adalah solusinya di sini. Yang diinginkan OP adalah integrasi gerhana asli dengan SBT dan ini yang paling dekat dengannya. Dengan yang satu ini, Eclipse sebenarnya melihat dependensi IVY dan menggunakannya secara asli. - person Andrew Norman; 10.03.2016
comment
ini benar-benar memecahkan masalah terbesar saya dengan gerhana/sbt dan IDE scala gerhana secara keseluruhan! - person Andrew Norman; 10.03.2016

Di command prompt, buka folder proyek dan ketik

sbt eclipse

Ini akan menghasilkan entri .classpath yang sesuai di proyek Eclipse.

Kembali ke gerhana, pilih proyek dan tekan f5, ini akan memuat ulang lib yang direferensikan.

person aspdeepak    schedule 13.01.2014

Yang Anda perlukan hanyalah mengeksekusi dari rumah proyek Anda:

sbt "eclipse with-source=true"

atau masukkan sbt konsol dan tulis:

eclipse with-source=true

BTW: Saya tidak tahu apakah sejak Jan '12 ada sesuatu yang berubah tetapi sekarang tampaknya jauh lebih sederhana.

person freedev    schedule 12.03.2017

Berikut ini berfungsi untuk saya:

1) tutup proyek di Eclipse

2) di file explorer saya, telusuri proyek Eclipse saya, pastikan file tersembunyi terlihat

3) buka .classpath dalam editor teks sederhana

4) salin entri bawah. Misalnya, dalam proyek saya saat ini, itu adalah <classpathentry path="/home/natalie/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-1.8.jar" kind="lib"></classpathentry>

5) navigasikan ke folder .ivy saya, cache, lalu ke perpustakaan yang telah saya tambahkan melalui sbt

6) klik kanan pada file jar, pilih properti, salin path dan nama file jar dan ganti di entri yang saya salin pada langkah 4

7) simpan .classpath

8) buka proyek saya di Eclipse

Ketergantungan baru sekarang tersedia di Eclipse.

person FreewheelNat    schedule 09.05.2013
comment
pertanyaannya adalah bagaimana seseorang bisa melakukan ini secara otomatis dan bukan secara manual. - person Ben; 15.11.2017