سؤال

لقد بدأت للتو مع تطوير Scala/LiftWeb/SBT ، وأرغب في استيراد مشروع SBT في فكرة Intellij. في الواقع ، تمكنت من استيراد مشروعي بطريقتين مختلفتين:

1) مع Maven. لقد قمت بإنشاء مشروع Maven ، وأعلى ذلك قمت بإنشاء مشروع SBT ، ثم استوردته في Intellij. يمكنني بعد ذلك البدء بسهولة ، ووقف خادم الرصيف ، والقيام بأشياء أخرى. لكن هذا ليس ما أريد. أريد أن أفعل نفس الأشياء ، فقط خالية من maven. التي تقودني إلى

2) مع الكسوف. لذلك ، قمت بإنشاء مشروع SBT جديد (مع برنامج نصي صغير كتبته ، وتكوين مشروع SBT ليكون عرض ويب). لقد استخدمت بعد ذلك المكون الإضافي SBT -Eclipsify "لتحويل" المشروع لـ Eclipse ، والذي قمت باستيراده بعد ذلك في Intellij (المصدر الحالي -> Eclipse). لكن المشاكل بدأت هنا: لا يمكنني الحصول على المكون الإضافي لـ Intellij SBT للعمل.

يمكن لأي شخص أن يساعدني في ذلك؟

هل كانت مفيدة؟

المحلول

هناك ثلاث طرق أساسية لكيفية إنشاء مشروع - يمكن للإصدارات الحديثة من Intellij استيراد مشروع SBT خارج الصندوق ، وإلا يمكنك إما استخدام البرنامج المساعد SBT لإنشاء مشروع Intellij ، أو استخدام Intellij Scala Plugin لإنشاء مشروع SBT. تعمل الميزات الأساسية خارج المربع باستخدام كلا الحللين ، يمكن أن تواجه بعض البناء المعقدة مشاكل ، لذلك جرب أدوات أخرى لمعرفة ما إذا كان يعمل هناك.

intellij

أصبحت فكرة Intellij أفضل بكثير هذه الأيام. يدعم الإصدار الحالي (14.0.2) مشاريع SBT خارج الصندوق باستخدام المكون الإضافي Scala. ما عليك سوى تثبيت البرنامج المساعد ويجب أن تكون قادرًا على فتح مشاريع Scala/SBT دون أي مشاكل.

Scala plugin under Plugins in Preferences

باستخدام البرنامج المساعد ، فقط أشر إلى مشروع SBT وستقدم لك Idea معالجًا لفتح هذا النوع من المشروع.

Import sbt project

Intellij Scala Plugin

يمكن العثور على المكون الإضافي لـ Intellij هناhttp://confluence.jetbrains.com/display/sca/scala+plugin+for+Intellij+idea أو يمكن تثبيتها Directoly من داخل IDE باستخدام Settings -> Plugins Dialog. بعد ذلك ، يمكن للمرء فقط القيام بالملف -> مشروع جديد -> Scala -> SBT. ستقوم Intellij بإنشاء Build Build.SBT ، وتنزيل التبعيات اللازمة والمشروع المفتوح.

البرنامج المساعد SBT

يمكن الاطلاع على المكون الإضافي SBT الذي يولد مشروع فكرة استنادًا إلى ملفات SBT هنا: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ و 13.0+

ببساطة أضف addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") لك build.sbt; ؛ لا توجد حاجة إلى حلول إضافية.

طريقة قديمة:

SBT 0.11+

قم بإنشاء وإضافة الأسطر التالية إلى ~/.sbt/plugins/build.sbt أو PROJECT_DIR/project/plugins.sbt

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")

يستخدم gen-idea في SBT لإنشاء ملفات مشروع IDEA.

بشكل افتراضي ، يتم تحميل المصنفات (أي مصادر وجافادوك) من تبعيات SBT والمكتبة إذا تم العثور عليها وإضافة المراجع إلى ملفات مشروع IDEA. إذا كنت لا ترغب في تنزيلها/الرجوع إليها ، فاستخدم الأمر gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1(وفقًا لمؤلف البرنامج المساعد ، 0.10.0 متعود الشغل!)

قم بإنشاء وإضافة الأسطر التالية إلى ~/.sbt/plugins/build.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"

يستخدم gen-idea مهمة SBT لإنشاء ملفات مشروع IDEA.

بشكل افتراضي ، يتم تحميل المصنفات (أي مصادر وجافادوك) من تبعيات SBT والمكتبة إذا تم العثور عليها وإضافة المراجع إلى ملفات مشروع IDEA. إذا كنت لا ترغب في تنزيلها/الرجوع إليها ، فاستخدم الأمر gen-idea no-classifiers no-sbt-classifiers.


SBT 0.7

لاستخدامه ، ما عليك سوى تشغيل هذا من قذيفة SBT الخاصة بك ، وسيستخدم المكون الإضافي كبرنامج خارجي:

 > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
 > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
 ...
 > update
 ...
 > idea
 ...

يمكنك أيضًا إضافة سمة في تعريف مشروعك ، كما تريد:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}

نصائح أخرى

الآن أفعل هذا باليد. إنه بسيط للغاية.

  1. إنشاء المشروع مع SBT
  2. قم بإنشاء مشروع فكرة جديد مع نفس مسار الجذر
  3. قم بإنشاء وحدة مع نفس مسار الجذر
  4. اضبط SRC/Main/Scala كمسار SRC على الوحدة النمطية
  5. اضبط SRC/Test/Scala كمسار اختبار على الوحدة النمطية
  6. أضف scala-library.jar كمكتبة
  7. أضف lib (إذا كان موجودًا) كدليل جرة داخل مكتبة الوحدة النمطية
  8. أضف lib_managed/expile (إذا كان موجودًا) كدليل جرة داخل مكتبة الوحدة النمطية
  9. أضف lib_managed/test (إذا كان موجودًا) كدليل جرة داخل مكتبة الوحدة النمطية

هذا كل شيء من الذاكرة. سيكون من الأفضل لو كانت آلية ، لكنها ليست مشكلة كبيرة كما هي الآن.

ملاحظة واحدة من الحذر: لا يعمل النهج أعلاه بشكل جيد مع SBT في المدرسة الجديدة ، IE الإصدارات 0.10 وأحدث ، لأنه لا ينسخ التبعيات إلى lib_daged بشكل افتراضي. يمكنك إضافة

retrieveManaged := true

إلى build.sbt لجعله نسخ التبعيات في lib_managed.

Tempus fugit وأصبحت فكرة Intellij أفضل بكثير هذه الأيام. إنه عام 2015 بعد كل شيء ، أليس كذلك؟

وقد قلت ذلك، أحدث إصدار من Idea Intellij 14.0.2 يدعم مشاريع SBT خارج الصندوق مع البرنامج المساعد Scala. ما عليك سوى تثبيت البرنامج المساعد ويجب أن تكون قادرًا على فتح مشاريع Scala/SBT دون مشاكل كبيرة.

Scala plugin under Plugins in Preferences

أنا أستخدم إصدار الوصول المبكر من البرنامج المساعد وهو 1.2.67.6.eap اعتبارًا من وقت الكتابة.

مع Plugin ، فقط أشر في مشروع SBT وستقدم لك Idea معالجًا لفتح هذا النوع من المشروع.

Import sbt project

حول SBT-IDEA في SBT 0.12.4

ل SBT 0.12.4 ملف تكوين المكون الإضافي على مستوى النظام - ~/.sbt/plugins/build.sbt أو PROJECT_DIR/project/plugins.sbt - يجب أن يكون لها الأسطر التالية:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

يركض sbt gen-idea لإنشاء ملفات مشروع الأفكار.

اقرأ موقع البرنامج المساعد SBT-IDEA لمزيد من المعلومات الحديثة. يمكنك أيضًا العثور على إدخال مدونتي استيراد المشروع القائم على SBT إلى Intellij Idea 13 (مع SBT-IDEA و Scala 2.11 و SBT 0.12) مفيد.

ل SBT 0.7

يرى الجواب في مكان آخر على هذه الصفحة.

ل SBT 0.10

استنساخ وبناء Ismael's SBT-IDEA:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

قم بإنشاء دليل LIB Plugin SBT إذا لم يكن لديك واحد بالفعل

mkdir -p  ~/.sbt/plugins/lib

انسخ الجرة المدمجة في الخطوة الأولى إلى هنا

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

إعادة التشغيل أو إعادة تحميل SBT ، ثم يمكنك الجري gen-idea (أو gen-idea with-classifiers إذا كنت تريد مصادر وجافادوك في Intellij أيضًا)

مصدر: اقتراح المقاييس على مجموعة الرسائل.

في intellij فكرة 13.x نفسها

يمكنك فتح مشروع قائم على SBT في Idea في الوقت الحاضر. سيقوم بإنشاء المشروع والوحدات النمطية اللازمة ، والحفاظ على تحديث تبعياتك كلما قمت بإجراء تغييرات على البرامج النصية للبناء.

لقد مررت للتو بكل هذا الألم. أقضي أيامًا في محاولة للحصول على بيئة مقبولة وتوصلت إلى استنتاج مفاده أن Ensime و SBT و Jrebel ستكون بيئة التطوير الخاصة بي لبعض الوقت. نعم ، إنها تعود إلى emacs ، لكن Ensime يحولها إلى حد ما أو فكرة مع إعادة إنشاء ، ودعم تصحيح الأخطاء ، والملاحة ، وما إلى ذلك أفضل ما لدينا.

حتى تصل بيئات تطوير Scala إلى Snuff (Eclipse أو intellij) لن أزعجني. إنهم مجرد طريقة لعربات التي تجرها الدواب.

انظر المناقشة على موقع المصعد.

http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

ضمن هذا الموضوع ، هناك رابط إلى Howto لـ Intellij ، ولكن على الرغم من أنه يعمل نوعًا ما ، إلا أن هناك العديد من المشكلات التي تجعلها أقل فائدة.

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/

الإجابات قديمة لعام 2014. في intellij 13.x, ، Scala المكون الإضافي هو VER 0.41.2 (يتم تضمين SBT).

لي إصدار SBT هو 0.13.5 (صالة : sbt sbtVersion )

انتقل إلى مجلد الجذر للمشروع وادخل في المحطة

sbt idea

سترى اثنين من المجلدات المخفية الجديدة .فكرة و .idea_modules.

ثم في Intellij ، ملف> فتح> حدد المشروع. يجب أن يفتح المشروع دون أي مشكلة.

قبل البدء في إنشاء مشروع SBT الخاص بك ، تأكد من تنزيل المكون الإضافي Scala وتمكينه في Idea Intellij.

يشرح الرابط أدناه كل ما تحتاج إلى معرفته.

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top