예전에는 Java 개발자 였지만 최근에 Haskell 팀에 합류했습니다. 자바 세계에서 여러 팀이 작업하는 대규모 프로젝트가있는 경우 일반적인 접근 방식은 Maven과 같은 아티팩트 서버를 사용하여 개발을 쉽고 빠르게하는 것입니다. Ant, Maven, Gradle과 같은 수많은 빌드 도구는 프로젝트를 빌드하고 jar 파일을 아티팩트 서버에 업로드 할 수 있습니다.이 파일은 팀의 다른 팀이 고통없이 사용할 수 있습니다. 따라서 프로젝트를 더 작은 하위 프로젝트로 분할하면 빌드 시간도 크게 단축됩니다.
Haskell 측에서는 cabal
프로젝트를 빌드하는 데 사용 하고 있습니다. 우리 프로젝트는 최적화하지 않고 구축하는 데 약 10-15 분이 걸립니다. 컴파일러 최적화가 켜져 있으면 몇 시간이 걸리며, 이는 고통 스럽습니다.
Java에서와 동일한 방법으로 어떻게 할 수 있을지 궁금합니다. 패키지 (라이브러리)의 바이너리를 아티팩트 서버로 컴파일하고 업로드하고 빌드시 사전 빌드 된 바이너리를 사용하는 쉬운 방법이 있습니까? Haskell이 Java의 바이트 코드가 아닌 머신 코드를 생성하므로 호환성 문제가있을 수 있지만 아티팩트 서버에 저장된 다른 아키텍처 / OS에 대해 다른 바이너리가있을 수 있습니다.
cabal
, GHC
, Test.Framework
또는 링커.