2015-05-05 12 views
9

Sto usando Eclipse Kepler su Mac 10.9.5. Ho importato un certo numero di progetti Maven usando il plugin Eclipse m2e. Tutti questi progetti sono figli di un padre genitore. Quando guardo la “Panoramica” nei singoli file bambino pom.xml, vedo cose come questa:Come posso mappare le fasi del ciclo di vita di Maven non coperte dal plugin di Eclipse m2e?

Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:write-project-properties (execution: default, phase: process-resources) 

Vorrei Eclipse per eseguire queste fasi del ciclo di vita al momento giusto, ma non sono sicuro come farlo. Quando seleziono il suggerimento di Eclipse ...

Permanently mark goal write-project-properties in pom.xml as ignore 

Ho selezionato il file principale pom.xml quando richiesto “Seleziona posizione in cui inserire ignorare”, tuttavia, l'errore non va via quando ho vista il file secondario pom.xml nella Editor di Eclipse Come posso mappare le fasi del ciclo di vita non coperte da m2e?

Edit:

Per la risposta, sono andato a Eclipse -> Preferenze -> Maven -> Lifecycle Mapping cliccato su "Apri spazio di lavoro del ciclo di vita Mapping Metadata", e curato il file come suggerito ...

<?xml version="1.0" encoding="UTF-8"?> 
<lifecycleMappingMetadata> 
    <pluginExecutions> 
     <pluginExecution> 
      <pluginExecutionFilter> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>xmlbeans-maven-plugin</artifactId> 
       <versionRange>2.3.3</versionRange> 
       <goals> 
        <goal>xmlbeans</goal> 
       </goals> 
      </pluginExecutionFilter> 
      <action> 
       <ignore /> 
      </action> 
     </pluginExecution> 
     <pluginExecution> 
      <pluginExecutionFilter> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>properties-maven-plugin</artifactId> 
       <versionRange>[1.0-alpha-2,)</versionRange> 
       <goals> 
        <goal>write-project-properties</goal> 
       </goals> 
      </pluginExecutionFilter> 
      <action> 
       <execute /> 
      </action> 
     </pluginExecution> 
    </pluginExecutions> 
</lifecycleMappingMetadata> 

anche dopo il riavvio di Eclipse, quando apro un file secondario pom.xml, "l'esecuzione Plugin non coperti dalla configurazione del ciclo di vita" errori rimangono come prima.

+0

Penso che tu possa trovare la risposta in queste domande/risposte: http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for- sprin – Fabien

+0

Non sto usando il plugin aspectj-maven però. – Dave

risposta

9

M2Eclipse (il plug-in di integrazione Maven per Eclipse) esegue il mapping e l'esecuzione dei valori predefiniti phase se goals di Maven nel flusso di lavoro interno di Eclipse.

See: https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

[...] richiede istruzioni esplicite che cosa fare con tutti i plugin Maven legati alle fasi di “interessanti” [...] di un ciclo di vita del progetto di costruzione. Chiamiamo queste istruzioni "project build lifecycle mapping" o semplicemente "lifecycle mapping" perché definiscono come m2e mappa le informazioni dal file pom.xml del progetto alla configurazione e al comportamento del progetto dell'area di lavoro Eclipse durante la creazione dell'area di lavoro di Eclipse.

È possibile risolvere questi errori in ogni progetto o nell'installazione globale di Eclipse.

La mappatura del ciclo di vita del progetto può essere configurata nel pom.xml di un progetto, fornito dai plugin Eclipse, o predefinito nei plugin Maven comunemente usati forniti con m2e. Chiamiamo queste "fonti di metadati per la mappatura del ciclo di vita".

file di impostazione Eclipse globale si chiama lifecycle-mapping-metadata.xml e configurabile tramite il 'ciclo di vita Mapping' alla finestra di dialogo Impostazioni Maven [1].

M2Eclipse associa le esecuzioni dei plug-in alle azioni utilizzando la combinazione di plug-in groupId, artifactId, intervallo di versione e obiettivo. Esistono tre azioni di base a cui M2Eclipse può essere istruito per eseguire un'esecuzione del plug-in: ignora, eseguire e delegare a un configuratore di progetto.

[...]

L'opzione ignora, come suggerisce il nome, indica a M2Eclipse di ignorare automaticamente l'esecuzione del plug-in.

[...]

L'opzione eseguire dice M2E per eseguire l'azione come parte di Eclipse lavoro generazione completa o incrementale.

delegato ad un configuratore progetto significa che ci sono plugin Eclipse adattatori in Eclipse Marketplace. Un plug-in dell'adattatore esegue i valori phase se goals in un modo più specifico del plug-in Maven.

Le impostazioni reali (la struttura XML) non sono reali ma un po 'descritte nel link sopra.

Nel tuo caso le lifecycle-mapping-metadata.xml saranno assomigliare:

<?xml version="1.0" encoding="UTF-8"?> 
<lifecycleMappingMetadata> 
    <pluginExecutions> 
[...] 
    <pluginExecution> 
     <pluginExecutionFilter> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>properties-maven-plugin</artifactId> 
     <versionRange>[1.0-alpha-2,)</versionRange> 
     <goals> 
      <goal>write-project-properties</goal> 
     </goals> 
     </pluginExecutionFilter> 
     <action> 
     <ignore /> 
     </action> 
    </pluginExecution> 
[...] 
    </pluginExecutions> 
</lifecycleMappingMetadata> 

PROTIP: Hai avuto più progetti e utilizzare una serie di Maven plug-in per tutto il tempo, spostare il lifecycle-mapping-metadata.xml in SCM (git, svn, cvs ...).

EDIT

Aggiungi tutti obiettivi di un plugin e forse plugin aggiuntivi per evitare questi errori. Leggere attentamente il messaggio di errore per ulteriori goal s o plugin.

Dopo ogni modifica salvata di lifecycle-mapping-metadata.xml bisogna ricarica il contenuto nella finestra di dialogo Impostazioni Maven [1] e aggiornare tutti i progetti basati su Maven nello spazio di lavoro.

Fare clic con il pulsante destro del mouse su un progetto Maven nell'area di lavoro e selezionare Maven> Aggiorna progetti .... Selezionare i/tutte le Maven Projects e attivare le seguenti caselle di controllo: configurazione del progetto

  • Aggiornamento da pom.xml
  • Aggiorna risorse dell'area di lavoro dal file system locale
  • progetti Clean

EDIT

[1] La finestra di dialogo Impostazioni di Maven era situata a File> Finestra> Preferenze> Maven > Mapping del ciclo di vita fino all'eccesso di Exclipse Oxygen.

+0

Ho modificato la mia domanda per mostrare cosa è successo quando ho modificato il file come suggerito (ho messo "execute" invece di "ignore"). ma "Plugin not coperto dal ciclo di vita "rimangono gli errori – Dave

+0

È esattamente lo stesso errore o diversi obiettivi? È necessario aggiungere tutti gli obiettivi non mappati e forse anche altri plugin. – barthel

+0

@barthel Il ProTip ... dove posizionare il ciclo di vita-mapping-metadata.xml?/o/src o dove? –

Problemi correlati