Mill 1.1.0, JVM 프로젝트 설정을 더 쉽게!
JVM 언어의 빌드 도구(Build Tool) 설정 복잡성을 해결하기 위해 Mill 1.1.0이 출시됨
build.mill.yaml 파일을 사용한 선언적 설정(Declarative Configuration)과 단일 파일 스크립트 지원
Maven, Gradle 등 기존 도구 대비 설정 간소화(Simplified Setup) 및 사용 편의성 강조
Java 11 이후 단일 파일 실행 기능과 다른 스크립트 언어의 문제점도 함께 언급됨
Mill 1.1.0의 선언적 설정(Declarative Configuration) 방식
Mill 1.1.0은 기존 Maven의 pom.xml 파일과 비교하여 build.mill.yaml 파일을 통해 프로젝트 설정을 간소화한다. 특히, YAML 1.2를 사용하여 YAML 관련 문제(YAML-related issues)를 완화하고, 불필요한 보일러플레이트를 제거하여 가독성을 높였다. 이를 통해 개발자는 더 적은 설정으로 JVM 프로젝트를 시작하고 유지 관리할 수 있다.
단일 파일 스크립트(Single-File Scripts) 지원
Mill은 Java, Scala, Kotlin과 같은 JVM 언어로 작성된 단일 파일 스크립트를 지원하여, 별도의 프로젝트 설정 없이 코드를 실행할 수 있도록 한다. JBang, Ammonite, Scala-CLI 등 기존 스크립트 실행 도구와 비교하여, Mill은 테스트, 어셈블리, 네이티브 바이너리 생성 등 다양한 기능(Rich Scripting)을 제공한다. 또한, IDE 지원을 통해 개발 생산성을 향상시킨다.
JVM 스크립팅 환경 개선
Mill은 JVM 스크립팅 환경을 개선하기 위해 다양한 기능을 제공한다. jvmVersion, javacOptions, mvnDeps 등 다양한 설정 키를 지원하며, 테스트 스위트, 멀티 모듈 프로젝트, 패키징 및 배포와 같은 기능을 제공한다. 또한, Java, Scala, Kotlin 간의 언어 간 호환성(Multi-Language JVM Scripting)을 지원하여 개발자가 선호하는 언어를 선택할 수 있도록 한다.
빌드 도구 설정의 근본적인 문제
댓글에서는 Java, Scala, Kotlin과 같은 JVM 언어뿐만 아니라 Bash, Python, Node.js에서도 서드파티 라이브러리(Third-party Libraries) 사용 시 유사한 문제점이 발생한다고 지적한다. 특히, Java 11 이후 단일 파일 실행 기능이 도입되었지만, 클래스패스(Classpath) 문제는 여전히 해결해야 할 과제로 남아있다. 결론적으로, Mill은 이러한 문제들을 해결하기 위한 하나의 시도로 볼 수 있다.