'parent.relativePath'는 org.apache : apache 대신 내 com.mycompany : MyProject를 가리 킵니다. 왜 그렇습니까?


135

사실 Solr 프로젝트 디렉토리는 MyProject 상위 디렉토리 안에 있습니다 (그러나 2 사이에는 모듈이나 Maven 관계가 없으며 FS 편의). 그것을 배치해야합니까?

$ mvn -DskipTests clean install
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.apache.lucene:lucene-solr-grandparent:pom:3.1-SNAPSHOT
[WARNING] 'parent.relativePath' points at com.mycompany:MyProject instead of org.apache:apache, please verify your project structure @ line 23, column 11
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 

부터 pom.xml:

<parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>8</version>
  </parent>

$ pwd
/Users/simpatico/ws/MyProjectBaseDir/solr

답변:


259

<relativePath> 을 추가 <parent>하여 리포지토리에서 상위 pom을 확인합니다.

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>8</version>
    <relativePath></relativePath>
  </parent>

관련 문서 는 다음과 같습니다 .

이 기능은 해당 프로젝트의 로컬 체크 아웃에서 개발을 향상시키기위한 것입니다. 기능을 사용하지 않고 항상 저장소에서 상위 POM을 해결하려는 경우 값을 빈 문자열로 설정하십시오.
기본값은 ../pom.xml입니다.


15
믿거 나 말거나, 경고는 일부 사람들을 두려워합니다. 상사가 방금 경고 메시지를받는 이유를 조사해달라고 요청했으며이 게시물이 제 하루를 보냈습니다.
Pierre

16
하늘에서 경고가 떨어지지 않습니다. 그럴만한 이유가 있습니다. 왜 솔루션이 아닌지 모른 채 빈 <relativePath> </ relativePath> 추가하기 ....
Lawrence

1
아파치 스파크를 만들려고합니다. 이 솔루션은 제 경우에는 작동하지 않습니다.
javadba

29
경고를 해결하지 않으면 사람들이 경고를 무시하도록 훈련시킵니다.
Paul Jackson

4
IMHO <relativePath />더 좋아 보인다
Lu55

20

경고를 무시하거나 관련이없는 상위에서 소스를 이동하거나 요소에 올바른 값을 입력하십시오. 이 문제는 relativePath의 기본값 인 ../pom.xml에 의해 발생하며 해당 기본값은 효과적인 pom에 주입되어 경고를 트리거합니다.


이 기본 동작이 다른 문제를 일으키는 것으로 의심됩니다. '요소 입력'은 무슨 뜻입니까?
simpatico

부모 pom이 현재 pom에 상대적인 위치에 따라 <relativePath> 요소의 올바른 값을 작성해야 함을 의미했습니다.
mkleint

1
경로 org.apache:apache는 컴퓨터에 로컬이 아닐 수도 있습니다 (로컬 .m2 리포지토리 제외). 이러한 경우 relativePath를 지정해야합니다.
Simon Forsberg

2

이 메시지는 현재 프로젝트와 관련된 상위 디렉토리의 pom.xml로 인해 발생할 수 있습니다. 상위 디렉토리의 pom이 현재 pom의 project.parent 구성과 일치하지 않습니다.


1
맞지만 답이 해결책을 설명하지는 않습니다. 경로 org.apache:apache는 컴퓨터에 로컬이 아닐 수도 있습니다 (로컬 .m2 리포지토리 제외). 이러한 경우 relativePath를 지정해야합니다.
Simon Forsberg

이것이 내 경우의 원인이었습니다. 이 경고는 명백한 이유없이 같은 날 나타나기 시작했습니다 (같은 maven 버전, 동일한 프로젝트 코드). 마지막으로 프로젝트 폴더 외부의 'pom.xml'파일을 발견했습니다.이 파일은 maven에 의해 선택되었습니다.
sudeep

2

프린지 케이스가 있습니다. 내 뚱뚱한 손가락 케이스.

내 부모님은 이것을 가지고 있었다 :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mygroup </groupId>
    <artifactId>pom-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>pom-parent</name>

그리고 내 (자식) 치어

<parent>
    <groupId>com.mygroup</groupId>
    <artifactId>pom-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom-parent/pom.xml</relativePath>
</parent>  

부모님의 그룹 ID는 이름 끝에 굵은 손가락 공간이 있습니다. 올바른 "com.mygroup"대신 "com.mygroup".

이 뚱뚱한 손가락 실수 때문에 ..... "groupId"이름이 일치하지 않습니다 .... 그리고 오류가 발생했습니다.

일명, 너무 극단적으로 해결하기 전에 뚱뚱한 손가락 실수를 확인하십시오.

인터넷 검색 오류

"프로젝트 빌드 오류 : POM의 'parent.relativePath'" "포인트" "프로젝트 구조를 확인하십시오"


1

<relativePath>질문 에서 태그를 놓친 것 같습니다 . 나는 그것이 없으면이 오류가 발생하지 않기 때문에 말하고 있습니다. 그 말은

집중해야 할 줄은 아래 경고문입니다.

org.apache : apache 대신 com.mycompany : MyProject의 'parent.relativePath'포인트

그것은 모듈의 태그의 상대 경로가 지정된 것과 다른 artifactId를 가진 pom 파일을 가리 키고 있음을 분명히합니다.

의 태그 에서 언급 한 artifactId귀하 parent/pom.xml와 귀하 artifactId<parent>태그 가 일치하지 않기 때문 입니다 module/pom.xml. 경고 변경 방지하기 위해 <parent>당신에 module/pom.xml아래 그림과 같이.

  <parent>
    <groupId>com.mycompany</groupId>
    <artifactId>MyProject</artifactId>
    <version>8</version>
    <relativePath>path-to-your-parent-pom.xml</relativePath>
  </parent>

2
경로 org.apache:apache는 컴퓨터에 로컬이 아닐 수도 있습니다 (로컬 .m2 리포지토리 제외). 이러한 경우 relativePath를 지정해야합니다.
Simon Forsberg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.