Maven package 후에도 삭제한 리소스가 JAR에 남는 이유
소스에서 지운 텍스트 리소스가 target/classes와 JAR에 남는 조건을 별도 Maven 프로젝트로 확인했다. 소스·중간 출력·JAR을 비교하고 clean package 결과로 이전 복사본과 현재 빌드 입력을 구별한다.
빌드노트
검색어를 입력해 글을 찾아보세요.
총 480개의 글
소스에서 지운 텍스트 리소스가 target/classes와 JAR에 남는 조건을 별도 Maven 프로젝트로 확인했다. 소스·중간 출력·JAR을 비교하고 clean package 결과로 이전 복사본과 현재 빌드 입력을 구별한다.
touch 뒤 COPY가 CACHED여도 mtime만 바뀌었다면 정상적인 캐시 재사용이다. 동일 입력·시간만 변경·내용·권한 변경을 실제 빌드 로그와 이미지 안 해시로 비교하고, 크기와 mtime을 함께 보존한 로컬 입력의 예외 관찰도 구분한다.
node_modules에 파일이 있어도 exports가 공개하지 않은 하위 경로는 import할 수 없다. 같은 파일을 둔 로컬 패키지에서 오류를 비교하고, 공개 진입점을 쓰는 수정과 소유 패키지에 경로를 명시하는 수정을 구분한다.
BigInt가 든 객체의 JSON.stringify 오류를 재현하고, ID만 십진 문자열로 변환해 정확한 값을 보존한다. 명시 필드 구성과 제한된 replacer를 비교하며, 파싱 후 원래 타입은 필드 계약 없이 자동 복원할 수 없음을 확인한다.
Promise.any의 전체 실패 원인은 AggregateError.errors에 남는다. B가 먼저 거절되는 타이머로 입력 순서와 실패 순서를 비교하고, 작업 이름별 원인 처리, 성공값 하나의 소비, 빈 입력의 구분을 설명한다.
Node exec의 ERR_CHILD_PROCESS_STDIO_MAXBUFFER를 CLI의 종료 코드와 구별한다. stdout·stderr의 작은 한도와 충분한 한도, spawn 스트림 소비를 실제 비교하고 버퍼 크기를 정하거나 로그 처리 방식을 바꾸는 기준을 설명한다.
curl의 POST 재시도가 최종 200으로 끝나도 서버 효과는 두 번 발생할 수 있다. 카운터 증가 뒤 503을 반환하는 loopback 서버에서 재시도 0회·1회와 --fail을 비교하고, 최종 상태·수신 횟수·중복 방지 계약을 따로 확인한다.
Node 내장 --env-file은 이미 주어진 환경값을 덮지 않는다. 키 존재 확인에서 시작 설정의 수정 위치로 이어 가고, 같은 합성 키와 두 파일의 순서를 바꾼 새 프로세스의 실제 값으로 판단한다.
Node ESM의 정적 의존 모듈은 엔트리 본문의 환경값 대입보다 먼저 평가될 수 있다. 같은 두 파일을 새 프로세스에서 비교해 읽는 시점을 확인하고, 시작 환경 주입과 초기화 뒤 동적 import 중 적용할 방법을 고른다.
Dockerfile의 cd가 다음 RUN에 이어지지 않아 파일을 못 찾을 때, pwd와 절대 경로 조회로 원인을 좁힌다. 한 RUN 안에서 이동할 경우와 이후 명령에 WORKDIR를 선언할 경우를 실제 빌드 결과로 구분한다.
로컬에 있는 템플릿이 npm tarball에서 빠졌는지 pack 목록과 실제 tar 항목으로 확인한다. files와 해당 위치의 .npmignore를 고친 뒤 별도 소비자에서 설치와 자원 읽기를 구분해 검사한다.
npm 설치가 종료 코드 0이어도 ignore-scripts 때문에 postinstall 생성물이 빠질 수 있다. 실제 CI 명령과 scripts·설정을 확인하고, 검토한 생성 작업을 명시 실행할 때 생략되는 pre/post hook과 의존 패키지의 경계를 살핀다.