2017-03-28 2 views

답변

1

스칼라 점진 컴파일이 어떻게 작동하는지 오해하는 것 같습니다.

"인 IntelliJ의 스칼라 증분 컴파일"라고 할 수있는이 여러 가지가 있습니다 : 서로 다른 프로그래밍 언어하지 적용 typcial 전략 다소 세트 (이다

1) 적절한 스칼라 증분 컴파일이 다시) Compile 버튼을 누를 때 처음부터 다시 모든 것을 컴파일하십시오. 그 뒤에있는 주요 아이디어는 빌드 시스템이 특정 파일과 모든 종속성이 마지막 컴파일 이후 변경되지 않았 음을 알 수 있으므로 다시 컴파일 할 필요가 없으며 대신 마지막 컴파일 결과를 사용할 수 있습니다. 그러한 경험적 방법은 복잡한 언어이므로 Scala에서는 실제로 복잡합니다. 수행 가능한 작업에 대한 아이디어는 SBT 문서 "Understanding Incremental Recompilation"에 설명되어 있습니다. 어떤 시점에서 JetBrains은 자신이 더 똑똑하고 자신의 경험치 세트를 구현했으며 더 나은 점 (즉 증분 컴파일이 더 빠름)을 결정 했으므로 이제 Scala 컴파일러 설정에서 SBT 기반 및 Idea 기반 증분 컴파일 중에서 선택했습니다. 하지만 여전히 컴파일 (또는 실행 또는 디버그 또는 유사)을 눌렀을 때만 작동합니다. 이것은 아이디어가 백그라운드에서하는 것과는 다릅니다.

2) IntelliJ Idea에 특정한 또 다른 점이 있는데, 이는 일종의 점진적 재 컴파일이 필요하며 거의 실시간으로 작동합니다. 그것은 아이디어의 스칼라 플러그인에 의해 구현 된 synxtax 강조 기능이며 비슷한 방법으로 변경하는 모든 파일을 즉각적으로 다시 처리해야하지만 실제 컴파일러와 정확히 동일합니다. 실제로 (스칼라 플러그인 자체를 개발하지 않는 한) 프로세스의 세부 사항을 조사하지 않아도됩니다. 이러한 프로세스가 제공하는 코드의 구문 구조는 있지만 실제로는 .class 파일이 아닙니다.