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.