
자바 기반 오픈소스 빌드 도구 Jenesis가 6일(한국시간) 0.15.4 버전을 공개했다. 빌드 중 실행하는 외부 프로그램에 전달할 환경변수의 범위를 좁히고 일부 설정 키를 변경했다. 빌드 단계별 결과를 JSON Lines 파일로 남기는 기능도 포함됐다.
Jenesis 공식 GitHub 릴리스와 문서에 따르면 이 도구는 빌드 엔진을 프로젝트의 build/jenesis/ 디렉터리에 자바 소스로 두고 JDK로 직접 실행한다. 별도 빌드 언어를 익히는 대신 자바 코드로 필요한 동작을 확장하는 방식이다. 실행에는 JDK 25 이상이 필요하다.
프로젝트에 module-info.java가 있으면 모듈 선언을 바탕으로 의존성을 해결하고 빌드한다. 자바 모듈 시스템을 쓰지 않는 프로젝트도 지원하며, 기존 pom.xml을 읽어 빌드할 수 있다. 모듈 사용을 도입 조건으로 강제하지 않는다는 점이 특징이다.
이번 릴리스에서는 빌드 단계가 실행하는 자식 프로세스의 환경변수 상속 방식을 바꿨다. 기존에는 빌드 프로세스의 환경 전체를 넘겼지만, 이제는 PATH·HOME 등 플랫폼에 필요한 변수와 별도로 지정한 변수를 전달한다. JReleaser 인증 변수와 네이티브 컴파일러에 필요한 변수 등은 예외로 처리한다.
추가로 넘길 변수는 environment-<tool>.properties 파일에 지정한다. 개발진은 기존 방식에서는 외부 도구가 셸에 저장된 민감한 변수까지 읽을 수 있었다고 설명했다. 다만 이번 변경이 빌드 도구 자체나 프로젝트 코드를 격리하는 샌드박스를 제공한다는 뜻은 아니다.
설정 키 변경은 기존 사용자가 살펴볼 부분이다. jenesis.execute.mainClass는 jenesis.execute.main으로, jenesis.jreleaser.dryRun은 jenesis.jreleaser.dry로 바뀐다. 도커 마운트 설정도 읽기 전용은 docker.readable, 쓰기 가능은 docker.writable로 정리했다. 공식 변경 요청에는 이전 이름을 더 이상 읽지 않으며 호환용 대체 처리도 두지 않는다고 명시돼 있다.
빌드 실행 기록은 target/.jenesis.events.jsonl에 남긴다. 각 줄에 JSON 객체를 기록하는 JSON Lines 형식으로 빌드 시작과 종료, 단계 실행·건너뛰기·실패, 캐시 처리 등을 표현한다. 스크립트나 코딩 에이전트가 사람이 읽는 진행 문구를 분석하는 대신 구조화된 결과를 사용할 수 있도록 한 기능이다.
Jenesis 생태계에는 이미 배포된 자바 모듈이나 Maven 아티팩트를 명령 하나로 실행하는 jpx도 있다. 공식 문서는 이를 자바용 npx에 비유한다. Jenesis 소스는 Apache 2.0 라이선스로 공개돼 있다. 이번 버전으로 옮기는 프로젝트는 바뀐 설정 이름과 외부 프로그램에 필요한 환경변수부터 점검할 필요가 있다.
출처: Jenesis 공식 GitHub 릴리스(0.15.4) https://github.com/jenesis/jenesis/releases/tag/v0.15.4 · Jenesis 공식 빌드 도구 문서 https://jenesis.build/tool/ · 환경변수 처리 변경 요청(#222) https://github.com/jenesis/jenesis/pull/222 · 설정 키 변경 요청(#226) https://github.com/jenesis/jenesis/pull/226 · 빌드 기록 변경 요청(#205) https://github.com/jenesis/jenesis/pull/205 · jpx 공식 문서 https://jenesis.build/jpx/ · Jenesis 라이선스 https://raw.githubusercontent.com/jenesis/jenesis/main/LICENSE