2017-12-15 3 views
1

Matlab 내에서 로컬 메이븐 저장소의 위치를 ​​결정하고 동일한 방법으로 이것을 수행하려면 mvn 명령이 필요합니다. 이것이 가능한가?로컬 Maven 리포지토리에 대한 경로가 프로그래밍 방식으로 제공됩니까?

또한 전체 Maven 논리를 명시 적으로 닮고 싶지 않습니다.

Maven이 로컬 저장소가있을 것으로 예상되는 곳에서 가져올 수있는 jar 파일이 있습니까?

+0

[프로그래밍 방식으로 원격 메이븐 저장소에서 아티팩트 다운로드] (https://stackoverflow.com/questions/29781791/downloading-artifacts-from-remote-maven-repo-programmatically) – ric

+1

메모 : "전체 Maven 논리 "는 실제로 매우 간단합니다. Maven은 사용자 디렉토리의 하위 디렉토리'.m2'에서'settings.xml'을 찾습니다. 존재하지 않거나 로컬 저장소에 관한 항목이없는 경우 로컬 저장소는 단지'.m2/repository'입니다. 그렇지 않으면'settings.xml'에서 새로운 로컬 저장소를 읽으십시오. –

+0

@JFMeier 이것을 증명하는 방법 (예를 들면 문서화)? – Dims

답변

1

저장소의 위치는 {M2_HOME}\conf\에 위치한이처럼 보이는 setting.xml라는 구성 파일의 localRepository 항목에 의해 정의된다

<settings> 
    <!-- ... --> 
    <localRepository>...</localRepository> 
    <!-- ... --> 
</settings> 

구성 파일이 존재하거나 아무튼하지 않는 경우 '

  • ~/.m2/repository 아래 *NIX/MaxOS
  • : t는에 대응하고, 상기 항목, 기본 위치가 사용을 포함 0
  • C:\Documents and Settings\{USERNAME}\.m2\repository

Windows에서 당신을위한 유일한 해결책은 setting.xml 파일을 찾아 저장소의 위치를 ​​추출하기 위해 구문 분석하는 것입니다. 후자가 정의되어 있지 않으면 현재 기본 운영 체제에 따라 올바르게 기본값을 지정해야합니다.

특히이 프로세스는 Matlab 코드에서 시스템 간 호환성을 구현해야하는 경우 까다로운 작업 일 수 있습니다. 문제없이 명령이 실행의 cmdoutsetting.xml 파일의 전체 콘텐츠를 포함 할 경우

[status,cmdout] = system('mvn help:effective-settings'); 

: 나는 당신에게 system function을 포함 대안을 제안한다. 일단 XML 데이터를 파싱하고 폴더를 찾을 수 있습니다.

관련 문제