'parent.relativePath', com.mycompany: orPro.apache: apache yerine MyProject'e işaret ediyor - Neden?


135

Doğru olan, Solr proje dizininin MyProject üst dizininin içinde olmasıdır (ancak 2 arasında sadece FS kolaylığı arasında bir modül veya herhangi bir maven ilişkisi yoktur). Yerleştirmem gerekiyor mu?

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

from pom.xml:

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

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

Yanıtlar:


259

Ana pompayı depolardan çözmesi için bir boş ekleyin .<relativePath><parent>

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

İşte ilgili doküman .

Bu özellik yalnızca söz konusu projenin yerel bir kasasındaki gelişimi artırmak içindir. Özelliği devre dışı bırakmak ve üst POM'u her zaman depolardan çözmek istiyorsanız değeri boş bir dizeye ayarlayın.
Varsayılan değer: ../pom.xml.


15
İster inanın ister inanmayın, uyarılar bazı insanları korkutuyor. Patronum bu uyarıyı neden aldığımızı araştırmamı istedi ve bu yazı benim günümü yaptı.
Pierre

16
Uyarılar gökten düşmüyor. Bunun bir nedeni var. Neden çözüm olmadığını bilmeden boş bir <relativePath> </relativePath> eklemek ....
Lawrence

1
Apache-spark oluşturmaya çalışıyorum. Bu çözüm benim durumumda çalışmıyor.
javadba

29
Uyarıları düzeltmezseniz, insanları uyarıları görmezden gelmeleri için eğitirsiniz.
Paul Jackson

4
IMHO <relativePath />daha iyi görünüyor
Lu55

20

uyarıyı yok sayın, kaynakları ilişkisiz ebeveynin dışına taşıyın veya öğeye doğru değerini girin. Sorun, ../pom.xml olan relativePath için varsayılan değerden kaynaklanır ve etkin pompanıza bu varsayılan değer enjekte edilir ve uyarıyı tetikler.


Bu varsayılan davranışın başka bazı sorunlara neden olduğundan şüpheleniyorum. 'Eleman girin' ile ne demek istiyorsun?
simpatico

Üst pompanızın geçerli pom'a göre nerede olduğuna bağlı olarak <relativePath> öğesi için doğru değeri yazmanız gerektiğini kastediyordum.
mkleint

1
Yolu org.apache:apache, muhtemelen yerel olarak bilgisayarda değil (yerel .m2 deposu hariç). Bu gibi durumlarda boş bir relativePath belirtilmelidir.
Simon Forsberg

2

Bu iletiye, geçerli projenize göre üst dizindeki pom.xml dosyası neden olmuş olabilir. Üst dizindeki pom, geçerli pom'ın project.parent yapılandırmasıyla eşleşmiyor.


1
Doğru, ama cevabınız çözümü açıklamıyor. Yolu org.apache:apache, muhtemelen yerel olarak bilgisayarda değil (yerel .m2 deposu hariç). Bu gibi durumlarda boş bir relativePath belirtilmelidir.
Simon Forsberg

Benim durumumda sebep buydu. Bu uyarı, görünürde bir sebep olmadan bir gün görünmeye başladı (aynı maven sürümü, aynı proje kodu). Sonunda maven tarafından alınan projenin klasörünün hemen dışında bir 'pom.xml' dosyası fark ettim.
sudeep

2

Saçak davam var. Benim tarafımda şişman bir parmak kılıfı.

Pom ebeveynim vardı:

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

ve benim (çocuğum) pom

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

Ailemdeki grup kimliğimin adının sonunda şişman bir parmak boşluğu vardı. Doğru "com.mygroup" yerine "com.mygroup" yazın.

Bu şişman parmak hatası nedeniyle ........ "groupId" isimleri eşleşmedi .... ve ben hata var.

Aka, çözmek için aşırı uçlara gitmeden önce şişman parmak hatalarını kontrol et.

internet araması için aldım hatası

"Proje oluşturma hatası: POM'dan" parent.relativePath "" "," proje yapınızı doğrulayın "


1

Sanırım <relativePath>sorudaki etiketi kaçırdınız . Bunu söylüyorum çünkü onsuz Bu hata ortaya çıkmayacak. Söyleniyor ki,

Konsantre olmanız gereken çizgi aşağıdaki uyarı ifadesidir.

org.apache: apache yerine com.mycompany: MyProject '' parent.relativePath 'noktaları

Modülünüzdeki göreli etiket yolunun, belirtilenle karşılaştırıldığında farklı artifactId değerine sahip bir pom dosyasını gösterdiğini açıkça söylüyor

Orada arasında bir uyumsuzluk olmasıdır artifactIdaramalarınızdan parent/pom.xmlve artifactIdsen bahsettiğimiz <parent>etiketine module/pom.xml. Uyarı değişikliğini önlemek için <parent>sizin de module/pom.xmlaşağıda gösterildiği.

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

2
Yolu org.apache:apache, muhtemelen yerel olarak bilgisayarda değil (yerel .m2 deposu hariç). Bu gibi durumlarda boş bir relativePath belirtilmelidir.
Simon Forsberg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.