IntelliJ Idea로 SBT 프로젝트를 만드는 방법은 무엇입니까?


146

방금 Scala / LiftWeb / Sbt 개발을 시작했으며 IntelliJ Idea에서 Sbt 프로젝트를 가져오고 싶습니다. 실제로 두 가지 방법으로 프로젝트를 가져 왔습니다.

1) Maven과 함께. 나는 Maven 프로젝트를 만들었고 그중에서도 Sbt 프로젝트를 만들었고 IntelliJ로 가져 왔습니다. 그런 다음 부두 서버를 쉽게 시작하고 중지하고 다른 작업을 수행 할 수있었습니다. 그러나 그것은 내가 원하는 것이 아닙니다. Maven-free와 같은 작업을하고 싶습니다. 그것은 나를 이끌었다

2) 이클립스와 함께. 그래서 새로운 Sbt 프로젝트를 만들었습니다 (작은 스크립트로 Sbt 프로젝트를 WebProject로 구성). 그런 다음 sbt-eclipsify 플러그인을 사용하여 Eclipse 용 프로젝트를 '변환'한 다음 IntelliJ (기존 소스-> 이클립스)로 가져 왔습니다. 그러나 문제는 여기서 시작되었습니다 .IntelliJ Sbt 플러그인이 작동하지 않습니다.

누구든지 이것을 도울 수 있습니까?


빠른 답변이 필요한 사람이나 긴급한 요구 사항이있는 경우 github로 이동하여 간단한 스칼라 프로젝트를 찾으십시오. IDE에서 다운로드 한 다음 가져옵니다. 스칼라 프로젝트에 액세스 할 수 있어야합니다. 행복한 시간
— 사용자가

답변:


170

프로젝트를 작성하는 세 가지 기본 방법이 있습니다. 최신 버전의 IntelliJ는 sbt 프로젝트를 즉시 가져올 수 있습니다. 그렇지 않으면 sbt 플러그인을 사용하여 IntelliJ 프로젝트를 생성하거나 IntelliJ Scala 플러그인을 사용하여 sbt 프로젝트를 작성할 수 있습니다. 기본 기능은 두 솔루션을 모두 사용하여 즉시 사용할 수 있으며 일부 복잡한 빌드에는 문제가있을 수 있으므로 다른 도구를 사용하여 작동하는지 확인하십시오.

IntelliJ

IntelliJ IDEA는 요즘 훨씬 나아졌습니다. 현재 버전 (14.0.2)은 Scala 플러그인으로 sbt 프로젝트를 즉시 지원합니다. 플러그인을 설치하기 만하면 아무 문제없이 Scala / sbt 프로젝트를 열 수 있습니다.

환경 설정의 플러그인 아래 스칼라 플러그인

플러그인을 사용하면 sbt 프로젝트를 가리키면 IDEA에서 해당 종류의 프로젝트를 열 수있는 마법사를 제공합니다.

SBT 프로젝트 가져 오기

IntelliJ 스칼라 플러그인

IntelliJ 플러그인은 http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA 에서 찾을 수 있습니다 . 있거나 설정-> 플러그인 대화 상자를 사용하여 IDE 내에서 직접 설치할 수 있습니다. 그 후 파일-> 새 프로젝트-> 스칼라-> SBT 기반으로 할 수 있습니다. IntelliJ는 기본 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.sbtOR에 추가하십시오.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 IDEA 프로젝트 파일을 만들 수 SBT에.

기본적으로 sbt 및 라이브러리 종속성의 분류 자 ​​(예 : 소스 및 javadoc)는 발견되고 참조가 IDEA 프로젝트 파일에 추가되면로드됩니다. 다운로드 / 참조하지 않으려면 command를 사용하십시오 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-ideaIDEA 프로젝트 파일을 만들 SBT 작업을.

기본적으로 sbt 및 라이브러리 종속성의 분류 자 ​​(예 : 소스 및 javadoc)는 발견되고 참조가 IDEA 프로젝트 파일에 추가되면로드됩니다. 다운로드 / 참조하지 않으려면 command를 사용하십시오 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)
   // ...
}

4
이 플러그인으로 완전히 변환했습니다. 이 프로젝트를 idea-sbt-plugin과 함께 사용하면 프로젝트 빌드를 SBT로 위임하고 IDEA의 도구 창에서 대화식으로 SBT를 사용할 수 있습니다. sbt-idea의 0.2.0-SNAPSHOT 버전은 부모 프로젝트 생성 및 수동 IntelliJ 구성 보존과 같은 약간의 성가신 문제를 해결합니다.
— retronym

이 플러그인에 감사드립니다. 정말 heppul입니다!
— ksemeks

4
나는 대답을 철회한다. 이것은 훌륭한 플러그인이며 매번 사용합니다.
— Synesso

1
SBT 0.10.0에 대한 답변을 추가했습니다. 이는 SBT 0.7.x +와 완전히 다릅니다. stackoverflow.com/questions/4250318/…
— opyate

감사합니다 opyate, 귀하의 의견에 따라 내 게시물을 업데이트했습니다
— Steve Gury

11

지금은 손으로이 작업을 수행합니다. 아주 간단합니다.

  1. SBT로 프로젝트 만들기
  2. 동일한 루트 경로로 새로운 IDEA 프로젝트를 만듭니다.
  3. 루트 경로가 동일한 모듈 만들기
  4. 모듈에서 src / main / scala를 src 경로로 설정
  5. 모듈에서 src / test / scala를 테스트 경로로 설정
  6. scala-library.jar을 라이브러리로 추가
  7. lib (있는 경우)를 라이브러리 라이브러리 내의 jar 디렉토리로 추가
  8. lib_managed / compile (있는 경우)을 모듈 라이브러리 내의 jar 디렉토리로 추가하십시오.
  9. lib_managed / test (있는 경우)를 모듈 라이브러리 내의 jar 디렉토리로 추가하십시오.

그것은 메모리에서 온 것입니다. 자동화되어 있으면 더 나을 것이지만 지금처럼 큰 문제는 아닙니다.

주의 사항 : 위의 접근 방식은 기본적으로 lib_managed에 종속성을 복사하지 않기 때문에 new-school sbt (예 : 0.10 이상)에서는 제대로 작동하지 않습니다. 추가 할 수 있습니다

retrieveManaged := true

의존성을 lib_managed에 복사하기 위해 build.sbt에.


그러나 IntelliJ 또는 터미널에서 프로젝트 (제티)를 시작합니까? IDE에서 프로젝트 실행기 / 컴파일러를 설정할 수 없습니다.
— ksemeks

한가지 더 : 당신이 쓴 모든 것을했지만 IntelliJ는 "import net.liftweb.LiftRules"가져 오기에 대해 "기호 ne를 해결할 수 없습니다"라고 말하고 있습니다
— ksemeks

나는 수입품을 가지고 다녔다. 나는 / lib_managed 대신 / lib_managed / compile을 가져와야했다
— ksemeks

6
답변이 취소되었습니다! sbt-idea 플러그인을 사용하십시오.
— Synesso

7

템푸스 fugit 과 IntelliJ IDEA는 요즘 훨씬 나아졌습니다. 결국 2015 년 이지요?

그러나 IntelliJ IDEA 14.0.2의 최신 버전은 Scala 플러그인으로 sbt 프로젝트를 즉시 지원합니다 . 플러그인을 설치하기 만하면 많은 문제없이 Scala / sbt 프로젝트를 열 수 있습니다.

환경 설정의 플러그인 아래 스칼라 플러그인

글을 쓰는 시점에서 1.2.67.6.EAP 인 플러그인의 Early Access 버전을 사용하고 있습니다.

플러그인을 사용하면 sbt 프로젝트를 가리키고 IDEA는 해당 종류의 프로젝트를 여는 마법사를 제공합니다.

SBT 프로젝트 가져 오기

sbt 0.12.4의 sbt-idea 정보

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-ideaIDEA 프로젝트 파일을 생성하기 위해 .

읽기 벽성 SBT-아이디어 플러그인 웹 사이트 보다 최신 정보에 대한합니다. 내 블로그 항목 sbt 기반 프로젝트를 IntelliJ IDEA 13으로 가져 오기 (sbt-idea, Scala 2.11 및 sbt 0.12 사용)가 유용 할 수도 있습니다.


새 프로젝트를 만들 때. sbt gen-idea 후에 프로젝트가 비어 있습니다. src가 아닌 테스트 폴더가 없습니다.
— ses

프로젝트를 어떻게 만들었습니까? 디렉토리 구조와 파일은 무엇입니까?
— Jacek Laskowski

그냥 비어 있습니다. 나는 "메인 / 스칼라 / src"를 손으로 상자에 담아 야했습니다. 그러나 나는 그걸로 살 수 있습니다.
— ses

sbt 프로젝트를 부트 스트랩하는 수단으로 github.com/n8han/giter8 을 사용할 수 있습니다 . sbt는 메인 프로젝트로 빈 디렉토리를 가질 수 있으며 main / scala / src는 필요 하지 않습니다 . sbt가 선택하도록 스칼라 파일을 메인 디렉토리에 두십시오.
— Jacek Laskowski

5

sbt 0.7의 경우

이 페이지의 다른 곳에서 답변을 참조 하십시오 .

sbt 0.10의 경우

이스마엘의 sbt-idea를 복제하고 구축하십시오 :

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

sbt 플러그인 lib 디렉토리가 없으면 작성하십시오.

mkdir -p  ~/.sbt/plugins/lib

1 단계에서 빌드 한 항아리를 여기에 복사하십시오.

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

sbt를 다시 시작하거나 다시로드 한 다음 실행할 수 있습니다 gen-idea(또는 gen-idea with-classifiersintelliJ의 소스 및 javadoc도 원하는 경우)

출처 : 메시지 그룹에 대한 Tackers의 제안 .

IntelliJ IDEA 13.x 자체에서

요즘 IDEA에서 SBT 기반 프로젝트를 열 수 있습니다. 필요한 프로젝트와 모듈을 만들고 빌드 스크립트를 변경할 때마다 종속성을 최신 상태로 유지합니다.


2

방금이 모든 고통을 겪었습니다. 나는 수용 가능한 환경을 만들기 위해 며칠을 보내고 ENSIME, SBT 및 JRebel이 내 개발 환경이 될 것이라고 결론을 내렸다. 예, Emacs로 돌아가고 있지만 ENSIME은 리팩토링, 디버깅 지원, 탐색 등으로 조금 또는 아이디어로 바뀝니다. Eclipse (Java)만큼 좋지는 않지만 스칼라 플러그인이 더 잘 작동하지 않으면 우리가 가진 최고.

스칼라 개발 환경이 스너프 (Eclipse 또는 IntelliJ)에이를 때까지 귀찮게하지 않을 것입니다. 그들은 단지 너무 버그가 있습니다.

리프트 사이트에 대한 토론을 참조하십시오.

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

이 스레드에는 IntelliJ 용 HOWTO에 대한 링크가 있지만 다소 작동하지만 유용성을 떨어 뜨리는 많은 문제가 있습니다.

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


벌써 읽었 어 이 기사는 내가 일할 수있는 maven을 사용합니다. 나는 sbt로 maven을 사용하여 지금 똑같이하려고합니다.
— ksemeks

IntelliJ가 프로젝트를 사용하도록 설정할 수 있지만 sbt 컴파일러 / 실행기를 작동시킬 수는 없습니다.
— ksemeks

ENSIME에 관한 한, 작업하기가 쉽습니까? 한 번 시도했지만 이맥스와 함께 일한 적이 없기 때문에 조금 어려웠습니다. 이맥스와 함께 일하는 것은 전제입니까?
— ksemeks

다음 링크는 SBT 설정을 안내합니다. 이것은 나를 위해 일했지만 다시 통합되지 않은 방식으로 SBT 및 IntelliJ를 사용하는 것은 SBT가있는 ENSIME이 훨씬 더 자연스러운 두 개의 별도 도구를 사용하는 것과 같습니다. heikoseeberger.blogspot.com/2010/08/…
— andyczerwonka

2

대답은 2014 년에 오래되었습니다. IntelliJ 13.x에서 , 플러그인 스칼라 (SBT 포함) 0.41.2 버전입니다.

내 SBT 버전은 0.13.5입니다 (터미널 : sbt sbtVersion )

프로젝트의 루트 폴더로 이동하여 터미널에 입력하십시오.

sbt idea

새로운 숨겨진 폴더 인 .idea 와 .idea_modules가 표시됩니다. 됩니다.

그런 다음 IntelliJ에서 파일> 열기> 프로젝트를 선택하십시오. 아무런 문제없이 프로젝트를 열어야합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.