Java의 잘못된 LOC 헤더(잘못된 서명) 오류

Sheeraz Gul 2023년6월20일
  1. Java의 잘못된 LOC 헤더(잘못된 서명)
  2. 로컬 리포지토리 삭제
  3. 손상된 jar 파일 삭제
  4. MD5 및 SHA1 체크섬 확인
Java의 잘못된 LOC 헤더(잘못된 서명) 오류

이 자습서는 Java의 잘못된 LOC 헤더(잘못된 서명) 오류를 보여줍니다.

Java의 잘못된 LOC 헤더(잘못된 서명)

잘못된 LOC 헤더(잘못된 서명) 오류는 로컬 Maven 리포지토리의 jar 파일이 손상될 때마다 발생합니다. 로컬 리포지토리는 파일 시스템의 Maven 프로젝트에서 다운로드한 파일입니다.

Maven이 다운로드한 모든 항목은 MD5 및 SHA1 파일과 함께 제공됩니다.

이러한 MD5 및 SHA1 파일의 목적은 원본 파일의 독창성과 무결성을 보장하는 것입니다. 네트워크 및 파일 시스템에서 오류가 발생할 수 있으므로 이러한 체크섬 파일도 손상되어 원본과 일치하지 않을 수 있습니다.

보통 이런 상황에서 유효하지 않은 LOC 헤더(잘못된 서명) 오류가 발생합니다. 아래에 주어진 이 오류에 대한 시나리오와 해결책이 있습니다.

로컬 리포지토리 삭제

이름에서 알 수 있듯이 전체 로컬 저장소를 삭제하고 새 Maven 프로젝트를 생성해야 합니다. 그러면 모든 Maven 리포지토리 파일이 제거되고 프로젝트 파일이 다시 다운로드되며 캐시가 삭제됩니다.

다음 명령은 리포지토리를 삭제할 수 있습니다.

rm -rf ${LOCAL_REPOSITORY}

settings.xml 파일에서 로컬 저장소를 지정할 수 있습니다. 로컬 저장소의 기본 경로는 ${user.home}/.m2/repository입니다.

손상된 jar 파일 삭제

손상된 jar 파일을 찾으면 삭제하면 문제가 해결됩니다. Maven 출력 스택 명령은 처리에 실패할 때 손상된 jar을 표시할 수 있습니다.

빌드 명령에 -X를 입력하여 로깅을 활성화할 수 있습니다.

mvn -X package

위의 명령은 로그 파일에서 손상된 jar 파일을 나타냅니다. Maven 저장소에서 jar 파일을 찾아 삭제할 수 있습니다.

Maven은 빌드 시 파일을 다시 다운로드합니다. 아카이브의 무결성은 zip -T 명령을 사용하여 테스트할 수 있습니다.

find ${LOCAL_REPOSITORY} -name "*.jar" | xargs -L 1 zip -T | grep error

MD5 및 SHA1 체크섬 확인

위의 두 솔루션은 Maven이 jar 파일을 다시 다운로드하도록 할 수 있습니다. 이러한 경우 향후 다운로드에서 동일한 유효하지 않은 LOC 헤더가 발생할 수 있습니다.

원격 저장소에서 항목을 다운로드하는 동안 MD5 및 SHA1 체크섬의 유효성을 검사하도록 Maven을 구성하면 잘못된 LOC 헤더 오류가 방지됩니다.

–strict-checksums 또는 -C 옵션이 Maven 명령에 추가되어 체크섬이 체크섬 파일의 값과 일치하지 않을 때 Maven이 빌드를 실패하게 합니다.

이는 빌드를 실패하거나 경고하는 두 가지 방법으로 수행할 수 있습니다. 경고 옵션이 기본값입니다. 실패하거나 경고하려면 아래 명령을 사용하십시오.

-C,--strict-checksums

-c,--lax-checksums

Maven은 리포지토리에 아티팩트를 업로드하는 동안 서명 파일이 필요하기 때문에 리포지토리에 서명 파일이 없는 아티팩트가 있을 수 있습니다. 이것이 경고 옵션이 기본값인 이유입니다.

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java Error