Maven 다운로드에는 확장자로 .lastUpdated가 있습니다.


82

m2eclipse 및 파괴적인 Eclipse 설정이 있습니다. svn에서 maven2 프로젝트를 가져 왔습니다. 그러나 전체 아티팩트가 누락되었다는 오류 메시지가 표시됩니다 (예 : Missing artifact org.springframework : spring-test : jar : 3.0.1.RELEASE : test).

내 저장소를 보면 거기에 jar 파일이 있지만 추가 확장자 .lastUpdated가 있습니다. Maven이 .lastUpdated를 jar에 추가하는 이유는 무엇입니까? 그리고 더 중요한 것은이 문제를 어떻게 해결할 수 있습니까?

내 POM에 lastUpdated 유형에 대한 언급이 없습니다.

답변:


60

이 파일은 Maven에 다운로드로 아카이브를 얻으려고 시도했지만 실패했음을 나타냅니다. 대역폭을 절약하기 위해 파일에 인코딩 된 특정 시간이 경과 할 때까지 다시 시도하지 않습니다. 명령 줄 스위치 -U는 maven이 재시도 기간 전에 업데이트를 수행하도록합니다. 네트워크 연결이 끊긴 상태에서 빌드를 시도한 경우 필요할 수 있습니다.

파일을 제거하는 방법은 대부분의 maven 버전에서 작동하지만 파일은 maven에 대한 내부 메모이므로이 방법을 권장하지 않습니다. 이 정보가 다른 곳에서 참조되거나 보관되지 않는다는 보장은 없으며 이러한 조작으로 인해 시스템이 손상 될 수 있습니다.


mvn -U clean을 시도했지만 문제가 해결되지 않았습니다. 내가 뭔가를 놓치고 있습니까?
— MiguelMunoz

첫 번째 단락의 마지막 진술은 주제에 대한 초보자로서 저에게 모순되는 것처럼 들립니다. 네트워크 연결이 끊어진 상태에서 빌드를 시도한 경우 필요할 수 있습니다. 연결이 끊어진 동안 시도하는 경우 -U는 원격 저장소에서 다운로드를 시도하고 귀하가 말한 내용에 대한 내 해석에 따라 실패합니다.
— Sandeepan Nath

즉, "네트워크 연결이 끊긴 상태에서 빌드를 시도하고 마커가 설정된 경우 -U 설정이 필요할 수 있습니다."
— Jörn Guy Süß

14

으로 rperez가 말했다, 나는 모든 삭제하는 데 사용하는 .lastUpdated파일. Linux에서는 간단하게 유지 하기 위해 약간의 스크립트를 만들었습니다 .

find -name \*.lastUpdated -exec rm -fv {} +

이전 콘텐츠로 파일을 만들고 로컬 Maven 저장소에 저장하기 만하면됩니다. 일반적으로 ~/.m2/repository.


2
zsh에서 :rm ~/.m2/repository/**/*.lastUpdated
— Dacav

3
또한 결과를 표시 하는 delete대신 find의 플래그를 사용하여 찾은 파일을 삭제할 수도 있습니다 . 예 :execrmfind ~/.m2 -name *.lastUpdated -delete
— spaaarky21

7

Maven2를 설치하고 명령 줄에서 mvn compile을 실행했습니다. 문제가 해결 된 것 같습니다.


명령 줄을 사용하여 컴파일하면이 문제가 해결되었습니다. 나는 이것이 m2eclipse 문제라고 생각합니다.
— TAN70

1
2017 년에 Windows 7 Professional SP 1에서 실행 중일 때 Eclipse 플러그인과 비슷한 문제가 있었으며 CLI를 선호하여이를 포기했습니다.이 플러그인은 저장하고 Excel로 가져올 수있는 훨씬 더 완전하고 유용한 보고서를 제공합니다. 누락 된 패키지, 다운로드하지 않은 파일, 페어링되지 않은 POM 및 JAR, 기타 유용한 통계를 다루는 모든 종류의 유용한 보고서를 생성합니다.
— 데이비드 A. 그레이

2

이 문제가 발생하고 Nexus를 사용중인 경우 잘못된 라우팅 규칙이 정의 된 경우 일 수 있습니다. 나는 이것을 직접 쳤고 다운로드하는 파일은 올바른 URL에서 올바르게 이름이 지정되었지만 모두 .lastUpdated확장자와 오류 메시지가 내용으로 표시되었습니다.


1

저장소에서 검색 할 일부 아티팩트에 문제가있을 수 있습니다. 예를 들어 스프링 프레임 워크에는 자체 저장소가 있습니다. 이 xtension은 아티팩트를 완전히 다운로드 할 수 없을 때 추가됩니다. 스프링 프레임 워크 저장소를 pom 또는 settings.xml에 추가하고 깨진 항아리가 포함 된 폴더를 삭제 한 다음 다시 시작하십시오.


동의하다. 유효한 pom 또는 jar 대신, 일반적으로 lastUpdate로 끝나는 pom 또는 jar는 크기가 2k에 불과하며 내용은 오류 로그와 비슷합니다. 보통의 결과이다 "에서 수집 종속성 실패는 ..."
— Tiina

그것은 그들을 생각하는 흥미로운 방법입니다. 나는 항상 그들이보고하는 JAR 또는 POM이 아니라 별도의 엔티티 (마지막으로 업데이트 된 파일)로 생각했습니다. 같은 방식으로 MyDotNetAssembly.exe.config를 MyDotNetAssembly.exe와 다른 파일 형식으로 생각합니다.
— 데이비드 A. 그레이

0

터미널을 열고 Eclipse의 프로젝트 디렉토리로 이동하여 다음을 실행하십시오.

mvn install

경우 mvn install의존성을 업데이트하지 않습니다 다음 강제 업데이트에 스위치를 호출 :

mvn install -U

이것은 ".lastUpdated"를 삭제할 때 maven 파일을 조작하는 것에 비해 훨씬 안전한 접근 방식입니다.


1
나는 똑같은 문제가 있으며 mvn install -U도움이되지 않았습니다. mvn clean install또한 일을하지 않았다
— roxch aug

0

.m2 / repository dir 내에서이 명령을 사용하여 모든 파일의 이름을 바꿉니다.

for file in `find . -iname *.lastUpdated`; do renamed=$(echo $file | rev | cut -c13- | rev); echo renaming: $file to $renamed; mv $file $renamed; done

이것은 모든 소스를 다시 다운로드하지 않는 데 유용합니다.

작동하지 않습니다 ... .jar이 손실되었습니다. :(

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.