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.