'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
信じられないかもしれませんが、警告は一部の人を怖がらせます。上司から、この警告が出される理由を調査するように言われたところ、この投稿が私の一日となりました。
ピエール

16
警告は空から落ちません。それには理由があります。なぜ解決策ではないのかを知らずに空の<relativePath> </ relativePath>を追加する...
Lawrence

1
私はapache-sparkを構築しようとしています。私の場合、このソリューションは機能しません。
javadba

29
警告を修正しない場合、警告を無視するように人々を訓練します。
ポールジャクソン

4
私見<relativePath />は良く見える
Lu55

20

警告を無視するか、ソースを無関係な親の外に移動するか、要素にの正しい値を入力してください。この問題は、relativePathのデフォルト値である../pom.xmlが原因で発生し、そのデフォルト値が有効なpomに挿入され、警告がトリガーされます。


このデフォルトの動作が他の問題を引き起こしているのではないかと思います。「要素を入力する」とはどういう意味ですか?
シンパティコ

つまり、親pomが現在のpomに対して相対的である場所に基づいて、<relativePath>要素に正しい値を書き込む必要があります。
mkleint

1
へのパスorg.apache:apacheは、コンピュータのローカルにない可能性があります(ローカルの.m2リポジトリを除く)。このような場合、空の relativePathを指定する必要があります。
Simon Forsberg、2017年

2

このメッセージは、現在のプロジェクトに関連する親ディレクトリのpom.xmlが原因である可能性があります。親ディレクトリのpomが現在のpomのproject.parent構成と一致しません。


1
正解ですが、あなたの答えは解決策を説明していません。へのパスorg.apache:apacheは、コンピュータのローカルにない可能性があります(ローカルの.m2リポジトリを除く)。このような場合、空の relativePathを指定する必要があります。
Simon Forsberg、2017年

これが私の場合の原因でした。この警告は、明らかな理由なしに1日表示され始めました(同じMavenバージョン、同じプロジェクトコード)。最後に、プロジェクトのフォルダーのすぐ外にある「pom.xml」ファイルに気づきました。これはmavenによってピックアップされていました。
18年

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>質問のタグを逃したと思います。それがないと、このエラーは発生しないからです。とはいえ、

集中する必要がある行は、以下の警告文です。

'parent.relativePath'はorg.apache:apacheではなくcom.mycompany:MyProjectを指しています

モジュールのタグの相対パスが、指定されたものとは異なるartifactIdを持つpomファイルを指していることを明確に述べています

間に不一致があるためですartifactIdあなたのparent/pom.xmlartifactIdあなたが言及した<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、2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.