이전에 결코 만난 적이없는 이상한 Maven 구성 문제가 발생했습니다. 내 솔루션과 관련하여 혼란 스럽습니다.왜 내 settings.xml 파일에 저장소를 지정해야합니까?
나는 모든 것을 거울처럼 사용하는 로컬 Nexus 서버를 가지고 있습니다. 지금까지 난 단지 내 Settings.XML이 파일에 다음 거울을 했어 :
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>WADA Nexus</name>
<url>https://nexus.domain.org/repository/Public/</url>
</mirror>
</mirrors>
그러나, 나는 최근에 내 넥서스의 repo에 배포 한 내 자신 만의 부모 치어를 창조하고 싶었다. 지금 내 빌드를 실행하려고하면
<parent>
<groupId>org.domain</groupId>
<artifactId>root-pom</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
그러나, 다음과 같은 실패 : 어떤 이유
ERROR: Failed to parse POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not find artifact org.domain:root-pom:pom:1.0.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 9, column 10
, 받는다는 노력하지 않는 내 프로젝트에서, 나는 나의 부모 치어 지적했다 내 Nexus 레포에서 상위 POM을 조회합니다. 나는 모든 레 포스/URL을 미러링 한 이후
이<repositories>
<repository>
<id>nexus</id>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>https://www.google.com/anythingCanGoHere</url>
<layout>default</layout>
</repository>
</repositories>
, 나는 임의의 값으로 해당 URL을 설정할 수 있습니다 받는다는 지금 것 :
내 유일한 해결 방법은 내 Settings.XML의 파일에 임의의 저장소 값을 정의하는 것이 었습니다 부모님을 데리러와.
그럼 왜 저장소를 지정해야합니까? maven이 자동적으로 상위 pom을 maven 중앙이나 다른 기본 저장소와 비교하려고 시도해서는 안됩니까?
POM 파일을 보여주세요. 올바른 내부 저장소 관리자의 모든 항목을 mirrorOf로 구성한 Maven Central에서 해결되지 않습니다. – khmarbaise
@khmarbaise 나는 그것이 실제로 maven 중심에 도착하지 않을 것이라는 것을 깨닫는다. 그러나 나는 그것을 시도 할 것을 기대하고 있었고, 거울 설정으로 인해 나의 넥서스로 방향 전환되었다. pom 파일은 매우 기본입니다 - 부모 정의 외에도 일부 속성, 종속성 정의 및 몇 가지 플러그인 정의가 있습니다. 리포지토리 또는 distributionManagement 항목이 없습니다. –
@khmarbaise 일단 내가 이것에 대해 생각해 보았 더라면, SNAPSHOT 저장소를 명시 적으로 지정하지 않으면 maven이 어디에서 SNAPSHOT 아티팩트를 찾을 지 알지 못한다고 결론을 내렸다. 디자인에 의한 것인가? 스냅 샷 생성물에 기본 repos (maven 중앙과 같은)가 없습니까? –