Maven 로컬 리포지토리 위치를 얻는 방법은 무엇입니까?


81

Maven 로컬 repo 위치를 얻는 방법이 있습니까?

다음 명령을 사용하면 Maven이 특정 설정 파일을 사용하도록 강제 할 수 있습니다.

 mvn -s < path to settings file >

settings.xml파일을 편집 하여 저장소 위치를 설정할 수 있다는 것을 알고 있지만 Maven 명령으로 현재 기본값을 얻을 수 있습니까?

답변:


121

로컬 리포지토리 만 원하는 경우 다음을 시도하십시오.

mvn help:evaluate -Dexpression=settings.localRepository | grep -v '\[INFO\]'

편집하다

최근 버전의 Maven 도움말 플러그인 이 출력을 grep 할 필요성을 제거 할 수있는 evaluate라는 목표에 대한 유용한 매개 변수를 도입했기 때문에 몇 년 후에 이것을 다시 검토 forceStdout하고 있습니다.

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

2
나는 당신이 | grep -v '\[INFO\]' 당신의 정규식 을 의도했다고 생각합니다 .
kubanczyk

두 버전 모두 저에게 효과적입니다. "불쾌한 부작용"이란 무엇을 의미합니까?
adutra

3
@adutra 정규식은 대문자 I, N, F 및 O로 구성된 일치 그룹을 지정합니다. 따라서 INFO, OFNI, I, F, N 등 두 줄 중 하나와 일치합니다. 사용해보기echo -e "INFO\nOFNI\nI\nIfoobar" | grep '[INFO]'
pmr

3
maven 경고가 있거나 종속성을 다운로드하면 작동하지 않습니다. 절대 파일 경로를 검색하는 다음 grep은 유닉스와 윈도우 모두에서 작동해야합니다.mvn help:evaluate -Dexpression=settings.localRepository | grep -E '^([a-zA-Z]:|/)'
SiXoS

@SiXoS도 작동하지 않았습니다. 제 경우에는 mvn이 [INFO] Scanning for projects .... 할 때 경고를 던졌고 출력이 grepped 될 때 어떤 것도 일치하지 않았습니다.
Sajuuk

50

예, -X또는 --debug옵션으로 가져올 수 있습니다.mvn -X

...
[DEBUG] Reading global settings from C:\Maven\conf\settings.xml
[DEBUG] Reading user settings from C:\segphault\.m2\settings.xml
[DEBUG] Using local repository at C:\Repo
...

38

Maven 도움말 플러그인은 로컬 저장소 경로를 포함한 로컬 설정을 표시합니다.

다음 명령을 원합니다.

mvn help:effective-settings

출력은 XML 형식으로 설정을 표시합니다. localRepository 요소를 찾으십시오.

<localRepository xmlns="http://maven.apache.org/SETTINGS/1.1.0">/home/jrs/.mavenRepo</localRepository>

경고가 발생하면 출력이 XML 형식이 아닌 것처럼 보입니다.
Sajuuk

19

에서 그 동안 당신은 간단한 방법으로 그렇게 할 수 있습니다 :

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

이를 직접 사용하여 다음과 같은 셸 변수를 할당 할 수도 있습니다.

RESULT=$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)

중요 참고 사항 : 최신 버전의 Maven과 물론 최신 버전의 maven-help-plugin을 사용합니다.

여기에는 새 줄이없는 결과가 포함됩니다.


이 답변은 지금까지 제안 된 다른 솔루션보다 더 깨끗한 결과를 제공하는 솔루션을 제공하므로 허용되는 답변이어야합니다.
Zartc

이것은 적어도 일부 플랫폼 / 구성에서 깨졌습니다. 나를 위해 (fc 28, Maven 3.5.2), -q는 출력을 생성하지 않지만 -q가 없으면 속성이 있지만 그럴 필요가 있습니다.
Pawel Veselov 2018

5

/home/.m2 디렉토리에 있어야하며 폴더가 숨겨져있을 수 있습니다. 따라서 숨겨진 폴더를 보려면 Ctrl + H를 사용해야합니다.


5

Windows 사용자의 경우

일반적으로 C:\Users\USER_NAME\.m2\repository.
그러나 mvn help:effective-settings명령은 반드시 응답 xml에 로컬 경로를 표시합니다.


0

-X옵션 을 사용하여 디버그 모드를 활성화하고 사용 중인 로컬 저장소를 언급하는 줄을 찾아 이를 수행 할 수 있습니다 .

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