mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
위의 명령을 사용하여 로컬 jar를 maven 로컬 저장소에 설치합니다. 이제 maven repo에서 종속성을 얻었습니다. 이것을 로컬 저장소에서 제거하고 싶습니다. 그것을 청소하는 방법?
mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
위의 명령을 사용하여 로컬 jar를 maven 로컬 저장소에 설치합니다. 이제 maven repo에서 종속성을 얻었습니다. 이것을 로컬 저장소에서 제거하고 싶습니다. 그것을 청소하는 방법?
답변:
이를 위해 실행할 수있는 maven 명령이 있지만 저장소에서 수동으로 파일을 삭제하는 것이 더 쉽습니다.
Windows Documents and Settings\your username\.m2
또는 $HOME/.m2
Linux 에서 이와 같이
.m2/repository directory
. 동료가 이전에 .m2 디렉토리를 삭제했는데 프로젝트에서 settings.xml
파일 을 수정해야하므로 문제가 발생 합니다.
.m2/repository
디렉토리를 삭제하면 모든 Maven 플러그인 파일도 삭제됩니다. purge-local-repository
명령을 사용하면 종속성 만 삭제됩니다.
.m2/repository
는 Maven 그룹 ID로 구성되어 있으므로 제거하려는 아티팩트에 해당하는 하위 디렉터리 만 삭제할 수 있습니다.
파일 삭제는 수동으로 작동하지만 로컬 (캐시) 저장소에서 프로젝트의 종속성을 제거 하고 선택적으로 원격 저장소에서 다시 해결 하는 공식적인 방법이 있습니다.
purge-local-repository
표준 Maven 종속성 플러그인 의 목표 는 캐시 에서이 프로젝트 의 로컬로 설치된 종속성 을 제거합니다 . 선택적으로 원격 저장소에서 동시에 다시 해결할 수 있습니다.
포함하는 프로젝트의 종속성에 적용되므로 프로젝트 단계의 일부로 사용해야합니다 . 또한 전 이적 종속성도 기본적으로 제거됩니다 (로컬로).
캐시에서 단일 아티팩트를 명시 적으로 제거 purge-local-repository
하려면 manualInclude
매개 변수 와 함께 사용 하십시오 . 예를 들어, 명령 줄에서 :
mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId, ..."
문서는 이것이 기본적으로 전이 종속성을 제거하지 않는다는 것을 의미합니다. 비표준 캐시 위치로 실행하거나 여러 플랫폼에서 실행하는 경우 "직접"파일을 삭제하는 것보다 더 안정적입니다.
전체 문서는 maven-dependency-plugin 사양에 있습니다.
참고 : 이전 버전의 maven dependency
플러그인에는 manual-purge-local-repository
목표가 있었으며 현재 (버전 2.8) manualInclude
. 에 대한 문서 manualIncludes
(와 함께 s
)도 읽어야합니다.
.jar
maven central 또는 다른 저장소에서 다운로드되지 않은 s에 대해 작동한다고 생각하지 않습니다 . 이 명령을 실행하면 .jar
자동으로 다운로드 된 모든 s 가 제거 되지만 .jar
수동으로 설치 한 s에 도달하면 다음 오류 메시지가 출력됩니다. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project alloy-generator: Failed to refresh project dependencies for: myartifact: required artifacts missing: [ERROR] manually-downloaded-and-installed.jar ...
.jar
지만 여전히 오류가 출력됩니다. 그래서 위해 .jar
받는다는 같이 몇 가지 이상한 파일을 생성하기 때문에 수동으로 설치 한 S, I는 삭제하는 대신이 방법을 사용하여 수동으로 추천 yourjar.jar.lastUpdated
하고 yourjar.pom.lastUpdated
수동 어쨌든 삭제해야 할 수있다. 그러나 maven이 모든 종속성을 자동으로 관리하는 경우 종속성을 제거하는 좋은 방법입니다.
적어도 현재 Maven 버전에서는 다시 다운로드하지 않고 로컬 리포지토리에서 종속성을 제거하려는 경우 -DreResolve = false 스위치를 추가해야합니다.
mvn dependency:purge-local-repository -DreResolve=false
다시 다운로드하지 않고 종속성을 제거합니다.
~/.m2/repository/phonegap/1.1.0/
Linux OS를 사용하는 경우 로컬 디렉토리 아래의 모든 항목 (jar, pom.xml 등)을 삭제하십시오 .
나는 같은 문제에 직면했고 위의 모든 제안을했지만 아무것도 작동하지 않았습니다. 마지막으로 .m2와 .ivy 폴더를 모두 삭제했으며 저에게 효과적이었습니다.
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard