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

사실 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



답변

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

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

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

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


답변

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


답변

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


답변

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

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

<?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'” “포인트” “프로젝트 구조를 확인하십시오”


답변

<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>


답변