/
maven 실행시 "Premature end of Content-Length delimited message body" 에러가 발생하고 다운로드가 안 될때..

maven 실행시 "Premature end of Content-Length delimited message body" 에러가 발생하고 다운로드가 안 될때..



오랫만에 자바 개발할 일이 생겨서 maven 으로 빌드중이었는데 다음과 같은 에러가 나면서 artifact 를 다운로드 받지 못하는 상황에 접했습니다.

아래 로그는 logback 에서 에러가 났지만 mvn clean package 을 해주면 다시 정상 작동하고 그후에는 다른 아티팩트를 받지 못하는 현상이 종종 발생했습니다.

ERROR] Failed to execute goal on project java-excel: Could not resolve dependencies for project com.company:java-excel:jar:1.0-SNAPSHOT: Could not transfer artifact ch.qos.logback:logback-classic:jar:1.2.3 from/to central (http://repo.maven.apache.org/maven2): GET request of: ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar from central failed: Premature end of Content-Length delimited message body (expected: 290339; received: 2270 -> [Help 1]


Stackoverflow 를 찾아봐도 ISP 회선 문제라는 의견이 보이는등 원인을 해결할 수 있는 방안은 보이지 않아서(뭐 자주 발생하는 일도 아니므로 근본적인 해결이 필요한 사안인지도 모르겠습니다.) 다시 이런 상황을 겪을 때 참고하려고 기록 차원에서 남겨둡니다.


mvn 재실행

위의 에러를 만나면 mvn 을 다시 실행하면 해결이 되는 경우가 많이 있습니다.

mvn clean package

주의할 점은 maven 은 jar 파일을 캐싱하는데 파일이 없을 경우에도 404 결과를 캐싱하므로 이럴 경우 계속 오류가 날 수 있습니다.

그럴 경우 $M2_HOME 폴더내의 캐싱한 아티팩트를 삭제해 주면 됩니다. $M2_HOME은 특별히 설정하지 않았을 경우 $HOME/.m2 이며 아래 find 명령어로 아티팩트의 캐시 디렉토리를 찾을 수 있습니다.

find ~/.m2/repository -name \*logback-classic\*


install 명령어로 아티팩트 설치

문제가 지속된다면 pom 과 jar 를 받아서 로컬 저장소에 설치해서 해결할 수 있습니다.

먼저 https://mvnrepository.com 같은 maven central 저장소에 연결하여 다운로드 받을 아티팩트를 검색합니다.

다음 예는 자바의 Date 클래스의 대체 유틸인 Joda-Time 을 검색한 화면입니다.

 

아티팩트 정보 화면에서 pom(joda-time-2.9.9.pom)과 jar(joda-time-2.9.9.jar)를 클릭해서 PC 에 다운로드한 후에 터미널을 열고 다음 명령을 실행합니다. 


mvn install:install-file -Dfile=joda-time-2.9.9.jar -DpomFile=joda-time-2.9.9.pom

정상적으로 실행되면 로컬 저장소에 설치되고 maven 빌드시에 사용할수 있게 됩니다.


같이 보기


Related content

Maven Javadoc Plugin
Maven Javadoc Plugin
More like this
maven TroubleShooting
maven TroubleShooting
More like this
apache maven 버전별 필요 JDK
apache maven 버전별 필요 JDK
More like this
confluence custom 한글 언어팩 번역하여 설치하기
confluence custom 한글 언어팩 번역하여 설치하기
More like this
maven PMD plugin 사용해서 문제되는 코드 검출하기
maven PMD plugin 사용해서 문제되는 코드 검출하기
More like this
아파치 티카(apache tika) 로 컨텐츠 파싱하기
아파치 티카(apache tika) 로 컨텐츠 파싱하기
More like this