Maven : 확인할 수없는 상위 POM


103

1 쉘 프로젝트와 4 하위 모듈로 maven 프로젝트 설정이 있습니다. 쉘을 만들려고 할 때. 나는 얻다:

[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR] The project module1:1.0_A0 (C:\module1\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find shell:pom:1.0_A0 in http://nyhub1.ny.ssmb.com:8081/nexus/content/repositories/JBoss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 11 -> [Help 2]

고독한 모듈을 만들려고하면 동일한 오류가 발생합니다. module1 만 해당 모듈로 교체합니다.

그들 모두에게 그들의 poms에서 부모를 언급하게하십시오.

<parent>
    <artifactId>shell</artifactId>
    <groupId>converter</groupId>
    <version>1.0_A0</version>
</parent>

다음은 shell pom의 관련 부분입니다.

<groupId>converter</groupId>
<artifactId>shell</artifactId>
<version>1.0_A0</version>
<packaging>pom</packaging>
<name>shell</name>


<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
</modules>

1
누군가 관심이 있다면 <relativePath>..</relativePath>under 추가 <parent></parent>가 나를 위해 일했습니다.
kaptan

2
실행mvn install -N & mvn install
Se Song 19

상대 경로는 모듈의 상위 폴더에있는 pom이 액세스 가능해야하는 경우 "솔루션"이 아닌 부적합한 프로젝트를위한 것입니다.
Rick O'Shea

제 경우에는 pom.xml 파일의 오타 때문이었습니다.
Oleksii Kyslytsyn

가능한 모든 문제 요약 : stackoverflow.com/a/62704660/6172857
Sumit Badsara

답변:


95

참고 용입니다.

Maven의 기쁨.

모듈의 상대 경로를 ../pom.xml에 넣으면 해결되었습니다.

parent요소는이 relativePath상위의 디렉토리를 가리 키도록해야한다는 요소를. 기본값은..


17
예. Maven을 사용하려면 무엇을하는지 알아야합니다. 시행 착오가 멀지 않을 것입니다. 반면에 몇 가지 좋은 참고 자료가 있습니다. 이것은 하나 입니다.
Nicola Musatti 2011 년

6
그래서 이것을 <relativePath>..</relativePath>아래에 추가 <parent></parent>했습니까?
옥타비아 2017-01-04

문제를 해결하기 위해 잠시 시도해 주셔서 감사합니다. 에서 ../pom.xml로의 상대 경로를 사용 했습니다 ../<parent folder>/pom.xml.
Mario Kurzweil

개인 저장소를 가리키는 경우 <relativePath>를 넣어도 문제가 해결되지 않습니다. 자세한 설명은 Tomáš Záluský 응답을 찾아보십시오.
Gi1ber7

내 주 pom 파일을 동일한 디렉토리 (동일한 프로젝트)의 다른 파일 (테스트 용)로 확장하려고합니다. 그러나 이것은이 오류를 해결하지 못합니다. 그것을 고치는 방법을 아십니까?
Praneeth Peiris

39

올바른 settings.xml파일을 ~/.m2/디렉토리 에 넣어서 수정할 수도 있습니다 .


3
내 문제가 정확히 해결되었습니다. 감사합니다 !!! 그러나 일부 디렉토리에 넣는 것이 아니라 환경 설정-Maven-사용자 설정에서 Eclipse를 가리 킵니다.
Brain

내 문제도 해결했습니다. 설정이 제대로 구성되었는지 확인하기 만하면 maven.repo됩니다 ..
Saran

21

대체 이유는 상위 아티팩트가에서 액세스 할 수없는 pom.xml저장소 (일반적으로 개인 저장소) 에서 온 것일 수도 있습니다 . 해결책은 다음 위치에 해당 저장소를 제공하는 것이 었습니다 pom.xml.

<repositories>
    <repository>
        <id>internal-repo</id>
        <name>internal repository</name>
        <url>https://my/private/repo</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

제 경우에는 Eclipse로 인해 문제가 훨씬 더 복잡했습니다. 저장소는 특수 프로필 ( <profiles><profile><id>activate-private-repo</id><repositories>...) 에서만 활성화 되었고 Eclipse의 Maven GUI에서는 Ctrl+Alt+P바로 가기를 통해이 프로필을 설정할 수 없었습니다 .

해결책은 임시로 프로필 외부에 저장소를 선언하고 (무조건) Alt+F5Maven 업데이트 프로젝트를 시작 하고, 프로필을 활성화하고, 저장소 선언을 프로필에 다시 넣는 것입니다. 이것은 Maven 버그가 아니라 Eclipse 버그입니다.


같은 상황! pom에 추가되지 않은 개인 저장소.
LoranceChen

4

해석 불가능한 상위 POM : 이는 상위 저장소를 해석 할 수 없음을 의미합니다.

디버그 모드에서 자르기 :

[DEBUG] Reading global settings from **/usr/local/Cellar/maven/3.5.4/libexec/conf/settings.xml**
[DEBUG] **Reading user settings from /Users/username/.m2/settings.xml**
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.5.4/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/username/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/username/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/username/.m2/repository
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:

부모 저장소는 maven 중앙의 일부가 아니기 때문입니다. 해결책은 ~ m2 /에 setting.xml을 지정하여 상위 POM을 생성하는 데 도움이됩니다. /Users/username/.m2/settings.xml

해당 XML에서 저장소 정보를 지정해야 할 수 있습니다.


대박 ! 설정 xml에 내 저장소 세부 정보를 추가하면 작동했습니다. 하지만 왜 pom xml (동일한 저장소가 추가되어 있음)에서 가져 오지 않습니까?
smilyface

3

<relativePath />pom의 부모가 다음과 같이 보이도록 추가하십시오 .

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath />
    </parent>

2
이것은 부모가 동일한 dir 구조, 즉 원격 저장소에 있지 않을 때만 적용됩니다.
Ondra Žižka

2

하위 POM에 올바른 값이 있는지 확인

GroupId
ArtefactId
Version

예를 들어 Eclipse에서 다음을 검색 할 수 있습니다. Eclipse : 상위 pom 검색


2

<relativePath>

하위 프로젝트에서 빌드하는 경우 <relativePath> 상위 pom을 해결하는 데 도움이 될 수 있습니다.

부모 pom 설치

그러나 폴더에서 하위 프로젝트를 빌드하면 <relativePath>작동하지 않습니다. install먼저 부모 pom을 로컬 저장소에 넣은 다음 자식 프로젝트를 빌드 할 수 있습니다 .


1

1.0_A0을 $ {project.version}으로 바꿉니다.

mvn을 한 번 실행하십시오. 그러면 필요한 모든 저장소가 다운로드됩니다. 이 단계 후에 1.0_A0으로 다시 전환 할 수 있습니다.


이는 필수 상위 POM에 하위 모듈의 POM과 동일한 버전이있는 경우에만 작동합니다. 항상 그런 것은 아닙니다.
Gerold Broser

1

나는 내 작업에서 비슷한 문제가 있었다.

종속성없이 상위 프로젝트를 빌드하면 .m2 폴더에 parent_project.pom 파일이 생성되었습니다.

그런 다음 상위 POM에 하위 모듈을 추가하고 Maven 빌드를 실행합니다.

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
</modules>

<relativePath /> 와 함께 귀하의 답변 이 문제를 해결했습니다. * relativePath만으로는 그렇지 않았습니다.
Gyro Gearloose

0

종속성 추가

pom.xml :

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
</dependency>

0

나는 아주 긴 시도 끝에 나에게 그 문제를 해결했고, 나는 로컬의 자식 모듈 파일 디렉토리에 "parent_pom.xml"이라는 다른 파일을 만들고 원격에있는 parent_pom.xml의 내용을 새로 만든 "parent_pom.xml에 붙여 넣었다" ". 그것은 나를 위해 일했고 오류 메시지가 사라졌습니다.


0

내부 상대 경로 태그는 다음과 같이 수행합니다.

<relative>{project_name}/pom.xml</relative>

그런 다음 RunAs-> Maven 빌드

그것은 나를 위해 일했습니다.


-2

두 개의 반응기 빌드 pom.xml 파일에 동일한 artefactId가 있다는 문제가 있습니다.


제 경우에는이 부모 모듈이 부모 폴더에 없었기 때문에 자식 모듈 <relativePath> ../ parent-module-dir </ relativePath>를 추가해야했습니다
Rolintocour
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.