2012-06-29 18 views
16

Attualmente sto affrontando il seguente problema con Maven 3 quando sto provando a creare il sito. Apprezzerò il tuo aiuto su questo.POM padre non risolvibile: quando si crea il sito del progetto Maven 3

mvn sito pulito

.......... 
[INFO] Reactor Summary: 
[INFO] 
[INFO] Project A ......................................... SUCCESS [15.383s] 
[INFO] Project B ......................................... SUCCESS [2.232s] 
[INFO] My Site ........................................... FAILURE [0.105s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 24.769s 
[INFO] Finished at: Fri Jun 29 14:26:04 AMT 2012 
[INFO] Final Memory: 18M/150M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.1:site (default-site) on project site: SiteToolException: Unable to read local module-POM: 1 problem was encountered while building the effective model for my.com:projA:0.1-SNAPSHOT 
[ERROR] [FATAL] Non-resolvable parent POM: Could not find artifact my.com:parent-pom:pom:0.1-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 12, column 13 
[ERROR] for project my.com:projA:0.1-SNAPSHOT 
............. 

Prima qui è la configurazione:

Apache Maven 3.0.4 (r1232337; 2012-01-17 12:44:56+0400) 
Java version: 1.7.0_04, vendor: Oracle Corporation 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac" 
Nexus repository: 2.0.6 

Il POM genitore:

<modelVersion>4.0.0</modelVersion> 

<name>Parent POM</name> 
<groupId>my.com</groupId> 
<artifactId>parent-pom</artifactId> 
<version>0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<build>       
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <reportPlugins> 
         <plugin> 
          <groupId>org.apache.maven.plugins</groupId> 
          <artifactId>maven-project-info-reports-plugin</artifactId> 
          <version>2.4</version> 
         </plugin>    
        </reportPlugins> 
       </configuration> 
      </plugin>    
     </plugins> 
    </pluginManagement>  
</build> 

Il progetto di aggregazione pom:

<modelVersion>4.0.0</modelVersion> 

<name>My Site</name> 
<groupId>my.com</groupId> 
<artifactId>site</artifactId> 
<version>0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<parent> 
    <groupId>my.com</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <relativePath/> 
</parent> 

<modules> 

    <module>projA</module> 
    <module>projB</module> 

</modules> 

Il pom del Progetto A:

<modelVersion>4.0.0</modelVersion> 

<name>Project A</name> 
<groupId>my.com</groupId> 
<artifactId>projA</artifactId> 
<version>0.1-SNAPSHOT</version> 

<parent> 
    <groupId>my.com</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <relativePath/>   
</parent> 

Il pom del Progetto B:

4.0.0

<name>Project B</name> 
<groupId>my.com</groupId> 
<artifactId>projB</artifactId> 
<version>0.1-SNAPSHOT</version> 

<parent> 
    <groupId>my.com</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <relativePath/>   
</parent> 

Ecco la struttura della cartella in cui corro "mvn sito pulito":

./pom.xml (aggregation project) 
./projA/pom.xml (Project A) 
./projB/pom.xml (Project B) 

genitore-pom viene distribuito con successo al repository NEXUS prima dell'esecuzione di mvn clean site con seguente comando mvn deploy -DaltDeploymentRepository=snapshots::default::http://MyServer:8081/nexus/content/repositories/snapshots

E infine il problema stesso:

Quando corro mvn clean site subito dopo l'implementazione del sito genitore-pom è stato realizzato correttamente. Se elimino la cartella (con il suo contenuto) "mio" (contiene parent-pom) dal repository locale (~/.m2/repository) e poi provo a creare il sito con mvn clean site Ricevo l'errore descritto al inizio. In realtà Maven scarica il genitore-pom dal NEXUS. Ho confrontato i file ei file scaricati che sono stati generati dopo la distribuzione e ho capito che ne mancano alcuni, ad esempio maven-metadata-local.xml vicino alla cartella "0.1-SNAPSHOT".

Così, quando sto cercando di eseguire il lavoro di costruzione del sito da Jenkins, ho ricevuto l'errore sopra descritto, perché il genitore-pom non è distribuito dalla macchina su cui gira Jenkins.

Come posso risolvere questo problema o cosa ho sbagliato?

Grazie.

+0

Rimuoverei la voce relativaPath dei moduli, perché è vuota quindi non è necessaria. Puoi migliorare l'immagine con la struttura delle cartelle dove si trova il tuo padre genitore e perché il pom principale e il pom di aggregazione sono diversi? – khmarbaise

+2

costringe Maven a scaricare il POM padre dal repository, invece di cercarlo nella struttura. mostra gli avvertimenti perché inizia a pensare che il genitore sia in ../pom.xml, che non è vero. Per quanto riguarda l'aggregazione e l'ereditarietà, è OK avere diverse POM padre e aggregazione. Ecco il link: [Aggregazione vs Eredità ] (http://maven.apache.org/pom.html#Inheritance_v) – tgrigoryan

+0

So che è possibile avere diversi aggregator e pa affitto, ma non rende la vita più facile. – khmarbaise

risposta

2

Il tuo problema non è nei tuoi file pom. Quando ho creato il tuo aggregation-pom, Maven ha scaricato normalmente il parent-pom dal repository remoto (dopo che ho cancellato dal mio repository locale).

Prova questo:

mvn -U clean install site dependency:purge-local-repository 

Inoltre, si potrebbe fare un po 'su pulito:

  • rimuovere <relativePath/> da tutti loro
  • rimuovere <version>0.1-SNAPSHOT</version> e <groupId>my.com</groupId> da proja e ProjB (sono ereditate dal genitore)
4

Come indicato da this answer, vi è a bug nel plug-in del sito, che cerca solo le dipendenze in quello che pensa sia Maven centrale.

Ho lo stesso problema in Maven 3.0.4 e nel sito-plug 3.3. Ho anche il problema che funziona nella mia macchina di sviluppo che esegue Windows 7, ma non nel server CI che esegue Jenkins su Debian.

1

Ho lo stesso problema ... funziona sul mio MacBook sviluppatore, ma non riesce sul mio Jenkins in esecuzione su RHEL7 quando si esegue mvn site utilizzando maven-site-plugin:3.7. Non ho provato a eseguire il downgrade del plug-in del sito.

Ho trovato un'altra soluzione. Il problema nel mio caso era lo maven-project-info-reports-plugin, in particolare l'obiettivo dependencies. Se salto l'obiettivo con il numero -Dmpir.skip=true generato dal mio sito (senza le dipendenze: (rapporto).

Problemi correlati