복붙노트

[SCALA] 최고의 스칼라 빌드 시스템은 무엇입니까? [닫은]

SCALA

최고의 스칼라 빌드 시스템은 무엇입니까? [닫은]

스칼라 개발을위한 최고의 IDE 어느 - 나는 IDE의 여기에 대한 질문을 본 적이? 그리고 무엇 스칼라에 대한 공구의 현재 상태는?하지만 난 십오 혼합 경험을 했어. 지금, 나는 나의 텍스트 편집기로 이클립스 IDE 자동 작업 공간의 새로 고침 옵션 및 KDE 4의 케이트를 사용하고 있습니다. 여기에 내가 해결하고 싶은 문제 중 일부입니다 :

그래도 난 아직 중 하나를 사용하지 않은 (나는 또한 # 3, # 4를 해결하는 시간을 할애해야합니다), 개미와 Maven을 바라 보았다. 나는 차선 빌드 시스템 작업을 얻는 시간을 할애하기 전에 사람이 다른 제안이 있는지보고 싶었다. 사전에 감사합니다!

UPDATE - 내가 지금까지 컴파일러 플러그인으로 프로젝트를 전달 메이븐을 사용하고 있습니다. 그것은 충분히 빠른 것 같습니다; 나는 확실히 종류의 항아리의 캐싱 메이븐이하는 일이 아니에요. 스칼라 2.8.0하는 전류 저장소 가능한 [링크]이다. 전형은 아주 멋진, 그리고 크로스 플랫폼 지원이 아주 좋은 것 같습니다. 그러나 컴파일 문제에 대해, 나는 확실하지 FSC 실제로 고정되어있는 경우 해요, 또는 내 프로젝트 (예를 들어 클래스 이름이 변경되지 않음) 안정 충분하다 - 수동으로 실행하는만큼 나를 귀찮게하지 않습니다. 당신은 예를보고 싶은 경우에, 나는 [GitHub의]를 사용하고있어의 pom.xml 파일을 찾아 주시기 바랍니다.

업데이트 2 - 내가 본 벤치 마크가, 다니엘 스피 웍 빨리 메이븐보다 더 buildr의 그 권리, 그래서 하나 그것은 아마, 호환되는 빌드 파일을 정교하게 할 수있는 경우 (하나의 증분 변경을하는 경우, 그리고, Maven의 십초 대기 시간이 귀찮을) 가치가 ...

해결법

  1. ==============================

    1.포인트 2와 4는 현재 scalac으로 관리하기가 매우 어렵습니다. 문제는 스칼라의 컴파일러가 파일을 구축하는 방법에 대해 조금 바보 같은 것입니다. 기본적으로, 그것은 당신이 상관없이 해당 파일이 정말 구축 할 필요 여부, 그것은 먹이를 무엇이든 만들 것이다. 스칼라 2.8.0은이 점에서 약간의 엄청난 개선을해야하지만 그때까지 ... 이클립스 SDT 실제로 변경 감지 및 의존성 추적을 수행하는 매우 정교한 (매우 hackish) 코드가 있습니다. 전체적으로는 괜찮은 일을하지만, 당신이 본대로, 주름이있다. 이클립스 SDT 2.8.0 자체를 scalac하는 전술 개선에 의존합니다.

    포인트 2와 4는 현재 scalac으로 관리하기가 매우 어렵습니다. 문제는 스칼라의 컴파일러가 파일을 구축하는 방법에 대해 조금 바보 같은 것입니다. 기본적으로, 그것은 당신이 상관없이 해당 파일이 정말 구축 할 필요 여부, 그것은 먹이를 무엇이든 만들 것이다. 스칼라 2.8.0은이 점에서 약간의 엄청난 개선을해야하지만 그때까지 ... 이클립스 SDT 실제로 변경 감지 및 의존성 추적을 수행하는 매우 정교한 (매우 hackish) 코드가 있습니다. 전체적으로는 괜찮은 일을하지만, 당신이 본대로, 주름이있다. 이클립스 SDT 2.8.0 자체를 scalac하는 전술 개선에 의존합니다.

    따라서 만 수정 된 파일을 구축하는 것은 질문의 거의 밖으로이다. 이외에도 SDT, 내가있는 알고있는 유일한 도구에서조차이 SBT (단순 빌드 도구)입니다 시도합니다. 또한 컴파일러 자체에 의해 계산 종속성 그래프들은 컴파일 된 바와 파일을 추적 및 조회 플러그인 컴파일러를 사용한다. 실제로, 재 컴파일 - 세계 접근 방식을 통해 50 %의 개선에 대한이 수익률. 다시 한번,이 전 2.8.0 scalac에 결함을 해결하기 위해 해킹입니다.

    좋은 뉴스는 합리적으로 빠른 컴파일도 변경 감지에 대한 걱정없이 여전히 달성 할 것입니다. FSC는 이클립스 SDT 빠른 증분 컴파일을 구현하는 데 사용하는 (그래서 "찰리 엡스을"소리 우) 같은 기술을 사용합니다. 즉, 그것은 꽤 물어이다.

    개인적으로, 나는 아파치 Buildr를 사용합니다. 그 구성은 (MRI에서 실행할 때) 중 하나 Maven의 또는 SBT의 그 시작 시간이 적은 크기의 주문보다 훨씬 청소기입니다. 그것은 자신의 (매우 원시적 인)에 기본적인 변화 검출을 수행하는 FSC 및 시도와 통합됩니다. 그것은 또한뿐만 아니라 인 IntelliJ 및 이클립스 자바 소스와 IDE 메타 세대 공동 편집에 대한 지원과 같은 주요 스칼라 테스트 프레임 워크 (ScalaTest, ScalaCheck 및 사양)에 대한 자동 마법의 지원을하고 있습니다. 아, 그리고 그것은 Maven의 기능 (의존성 해상도 등) 다음 몇 가지 모두를 지원합니다. 난 JavaRebel와 통합하고 여러 쉘 공급자 (스칼라, JIRB, Clojure의 REPL 등)을 지원하는 대화 형 쉘 지원을 허용 할 확장에 일하고 있어요. 그것은 아직 SVN에 대한 준비가 아니지만, 준비가되면 나는 (1.3.5 시간에 가능) 커밋 수 있습니다.

    당신이 볼 수 있듯이, 나는 매우 단단히 의견 Buildr 최고의 스칼라 빌드 도구에서이 있다고 해요. 그 문서는 스칼라에 관한 약간 드문 드문이지만,의 모든 것이 그것이 자세한 느낌없이 문서 어렵다 너무 간단하기 때문이다. 당신은 항상 예 내 GitHub의 저장소 중 하나를 확인할 수 있습니다. 행운을 빕니다!

  2. ==============================

    2.당신은하게 IntelliJ IDEA와 스칼라 통합 봤어? IntelliJ에 충성 (광신적?)를 가지고 자바 개발자 사이에 다음, 당신이 당신의 필요에 적합한 찾을 수 있도록.

    당신은하게 IntelliJ IDEA와 스칼라 통합 봤어? IntelliJ에 충성 (광신적?)를 가지고 자바 개발자 사이에 다음, 당신이 당신의 필요에 적합한 찾을 수 있도록.

  3. ==============================

    3.또한 꽤 스칼라 이클립스 플러그인 내가 목록에 몇 가지 문제를 더 추가 할 수 있습니다 좌절 있습니까 :

    또한 꽤 스칼라 이클립스 플러그인 내가 목록에 몇 가지 문제를 더 추가 할 수 있습니다 좌절 있습니까 :

    감사 - 나는 더 나은 대안처럼 Buildr 사운드 (빌드 전면는 어쨌든), 나는 시도 것을주지 듣고 기쁘다!

  4. ==============================

    4.당신은 이맥스를 사용하는 경우, 나는 Ensime가 꽤 좋은 IDE를 생각합니다. 나는 시간 쓰기에서, Ensime가 암시 적 변환을 포함하여 모두 스칼라와 자바 객체, 당신에게 신속하고 정확한 자동 완성을 줄 수있는 유일한 IDE 생각합니다.

    당신은 이맥스를 사용하는 경우, 나는 Ensime가 꽤 좋은 IDE를 생각합니다. 나는 시간 쓰기에서, Ensime가 암시 적 변환을 포함하여 모두 스칼라와 자바 객체, 당신에게 신속하고 정확한 자동 완성을 줄 수있는 유일한 IDE 생각합니다.

    자동 완성을 사용하여 스피드를 사용하여 코드 검색 지원, 우수한 Yasnippet를 사용하여 코드 템플릿, 코드 완성 메뉴가 있습니다. 이들은 모두 매우 현대적인, 적극적으로 유지 이맥스 패키지입니다. 메이븐와 SBT의 상자 증가 구축 지원의 부족도 있습니다.

    많은 더있다가 대화 형 디버깅, 리팩토링, 그리고 열등한 과정에서 스칼라 인터프리터있다. 당신은 스칼라에 대한 현대적인 IDE에서 원하는 모든 일들이 Ensime 이미있다. 높은 Emacsens 좋습니다.

  5. ==============================

    5.완전성의 이유로, 나는 또한 바지가 있다고 말해야한다 - 빌드 도구가 트위터에서 사용 (초기 스칼라 어댑터 중 하나)에서

    완전성의 이유로, 나는 또한 바지가 있다고 말해야한다 - 빌드 도구가 트위터에서 사용 (초기 스칼라 어댑터 중 하나)에서

    이 스칼라에 대한뿐만 아니라 의도 된 (그리고 그런데, 파이썬으로 작성)와 구글의 빌드 시스템을 모델로되어 그 것을 가장 큰 차이점.

    그래서 신입생이 훨씬 간단의 정도, SBT으로 부풀어 아니에요,하지만 난 트위터와 정사각형의 바지 사용 외부에 대해 들어 본 적이 없어요.

    당신은 SBT를 두려워하면, 아마 다른 어떤 그다지 인기 빌드 도구, ABT는 당신을위한 대안이 될 수 있을까?

  6. ==============================

    6.나는 같은 길을 가고, 나는 여기에서 나는 곳이다 : - 몇 가지 초기 조사 후, 나는 케이트 떨어졌다. 나는 대부분의 것을 위해 그것을 사용하는 사랑하지만 그것은 탭 완료를 정의하는 등의 작업에 왔을 때, 나는 몹시 부족 발견했다. 난 당신이 훨씬 더 강력한 스칼라 개발을위한 인 대신 gedit를 조사하는 것이 좋습니다 것입니다 - 내 편집기로 gedit를 통해, 나는 SBT를 사용하고 훌륭한 빌드 도구로 발견했다. 나는 어떤 코드가 관련 파일을 다시 컴파일하고 내 테스트 스위트를 실행 변경하는 '테스트'모드로 전환 할 수 있습니다. 이 작업에 매우 효과적인 방법이었다.

    나는 같은 길을 가고, 나는 여기에서 나는 곳이다 : - 몇 가지 초기 조사 후, 나는 케이트 떨어졌다. 나는 대부분의 것을 위해 그것을 사용하는 사랑하지만 그것은 탭 완료를 정의하는 등의 작업에 왔을 때, 나는 몹시 부족 발견했다. 난 당신이 훨씬 더 강력한 스칼라 개발을위한 인 대신 gedit를 조사하는 것이 좋습니다 것입니다 - 내 편집기로 gedit를 통해, 나는 SBT를 사용하고 훌륭한 빌드 도구로 발견했다. 나는 어떤 코드가 관련 파일을 다시 컴파일하고 내 테스트 스위트를 실행 변경하는 '테스트'모드로 전환 할 수 있습니다. 이 작업에 매우 효과적인 방법이었다.

    아직 Buildr에서 모습을 촬영하지 않았습니다. 나는 것이라고 말하고 싶지만, 솔직히 SBT 내 처분에 정말 다른 빌드 도구에서 보는 매력적인 필요가 없습니다.

  7. ==============================

    7.이클립스를 사용하지만, SBT를 사용하여 프로젝트를 구축하고, 여전히 디버깅 할 수 있도록하려면, 여기이 게시물을 살펴 :

    이클립스를 사용하지만, SBT를 사용하여 프로젝트를 구축하고, 여전히 디버깅 할 수 있도록하려면, 여기이 게시물을 살펴 :

    zikaprog.wordpress.com/2010/04/19/scala-eclipse-sbt-and-debugging/

    또한 SBT가 아닌 다른 업체에 적용 할 수 있습니다.

  8. ==============================

    8.빠른에 대한 지원 아연 / 네일 건 플러그인 메이븐 스칼라의 최신 버전은 시작 시간을 빠르게 증분 빌드. 참조 아연 및 증분 컴파일.

    빠른에 대한 지원 아연 / 네일 건 플러그인 메이븐 스칼라의 최신 버전은 시작 시간을 빠르게 증분 빌드. 참조 아연 및 증분 컴파일.

  9. from https://stackoverflow.com/questions/972006/whats-the-best-scala-build-system by cc-by-sa and MIT license