2015-06-11 17 views
14

Sto utilizzando spring-boot e ho riscontrato un errore simile a quello descritto here. Ho aggiunto quanto segue al mio pom.xml.Maven - Sopprimi l'avviso di versione gestita Overriding in Eclipse

<dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$--> 
     <version>1.1.0.Final</version> 
    </dependency> 

sto sovrascrivendo la validazione-api 1.0.0 dipendenza definito nel mio pom.xml madre, in modo di avvio primavera, e questo dà il messaggio di avviso fastidioso:

Overriding managed version 1.0.0.GA for validation-api

Come posso sopprimere definitivamente questo messaggio di avviso in Eclipse? Si presenta sia nella mia vista pom.xml che nella mia vista dei problemi.

+0

Aggiornare la versione nel pom principale del genitore. – khmarbaise

+0

Aggiunta del commento funziona per me. –

+0

Grazie per le risposte. RE aggiorna il pom genitore ... Non possiedo il padre genitore, è ereditato tramite Spring Boot. RE aggiungendo che non ha funzionato, ma non so se l'ho usato correttamente. Mi piacerebbe anche saperne di più se questo chiarisce l'avvertimento. –

risposta

19

Quando quell'avvertimento si presenta, è possibile aprire il menu Quick-Fix sul sistema di allarme (Ctrl + 1) e selezionare

Ignore this warning

Questo aggiungerà il commento sulla linea di versione, come:

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$--> 
</dependency> 

Il tuo problema è che hai aggiunto manualmente quel commento sulla linea sbagliata.

+0

questo ha funzionato per rimuovere gli avvisi mostrati in eclissi ma non riesco ancora a creare il progetto. ottenendo l'errore: 'Regola 0: org.commonjava.maven.enforcer.rule.EnforceManagedDepsRule non riuscita con il messaggio: Le seguenti 2 dipendenze NON stanno utilizzando una versione gestita' –

+2

Questo è un brutto modo per risolvere il problema, perché potrebbe violare il dipendenza di altra libreria. –

2

Immettere la versione necessaria nel pom principale.

Questo avviso indica che si sta tentando di sovrascrivere la versione di artefatto definita nel pom principale (livello superiore). Basta inserire la versione di cui hai bisogno in main pom e non hai nemmeno bisogno di usare <version /> in altri poms per questa dipendenza.

5

Dal momento che il progetto sta usando spring-boot, una risposta più corretta potrebbe essere trovato qui:. https://stackoverflow.com/a/35385268/1568658

(E da quando ho ottenuto lo stesso problema, e la risposta di cui sopra non è anche molto completo vorrei aggiungere una risposta . qui)

Motivo di emissione:

spring-boot ha definito molte dipendenze & loro versione, quando si aggiunge l'uso di primavera-boot come pare nt, queste dipendenze sono state ereditate e l'override di una delle dipendenze con una versione diversa avrebbe ricevuto l'avviso, perché avrebbe potuto rompere le dipendenze di altre librerie.

Soluzione:

definire una proprietà per quella dipendenza tra <properties></properties>, di specificare la versione.

es

 <properties> 
      <reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version> 
     </properties> 

Come trovare il nome della proprietà:

  • Aprire il pom.xml in Eclipse.
  • ctrl + click sul tag <parent> per aprire pom di genitore, e necessario fare clic due volte in senso inverso per finalmente raggiungere in POM con artifactId come spring-boot-dependencies
  • Una volta che l'avete aperto che pom, ricerca per il tuo dipendenza, e.g servlet-api, e puoi vedere la versione di default.

C'è un documento dalla primavera spiega meglio: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

-1

utile! Risolve il problema. Come il file pom del modulo dichiara 9.2.12.M0 mentre l'avvio a molla si riferisce a V9.3. Sovrascrivo il V9.2 nel file pom principale. seguito da "Eric Wang"

+0

primavera-boot utilizzare la versione di default, che è può essere dichiarata nel file pom come elemento \t \t \t \t \t \t \t \t \t org.springframework.boot \t \t \t \t molla-boot-dipendenze \t \t \t \t 1.5.1.RELEASE \t \t \t \t pom \t \t \t \t importazione \t \t \t \t \t \t, si dovrebbe dichiarare la propria versione di sovrascrivere la versione di default. –