2014-05-17 5 views
5

Questa domanda NON riguarda il framework Spring o J2EE in quanto tale.Maven/mvn warnings - Si consiglia vivamente di risolvere questi problemi perché minacciano la stabilità della build

Come nel mio libro, ho un progetto Spring in eclipse-jee. Mi dice di costruire il progetto con Maven. Sono nuovo per Maven e non so cosa sto facendo con esso.

Quindi, ho usato windows cmd per accedere alla cartella del mio progetto in eclissi ed eseguito mvn package -DskipTests. Ora, questo succede con un messaggio BUILD SUCCESS, ma mi dà anche gli avvisi indicati di seguito.

Per favore dimmi perché si verificano gli avvertimenti e in che modo ignorare gli avvertimenti mi feriscono in futuro? sezione

[INFO] Scanning for projects... 
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for 
com.perfmath.spring:soba:war:4 
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be 
unique: org.apache.httpcomponents:httpclient:jar -> version 4.1.2 vs 4.0.3 @ li 
ne 229, column 15 
[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:tomcat-maven-plug 
in is missing. @ line 46, column 12 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten t 
he stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support buildin 
g such malformed projects. 
[WARNING] 

Dipendenze della mia pom.xml -

<dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-oxm</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-taglibs</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-acl</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-core-tiger</artifactId> 
     <version>2.0.7.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-crypto</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-mock</artifactId> 
     <version>${spring-mock.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <!-- Spring webflow --> 
    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.webflow</groupId> 
     <artifactId>spring-binding</artifactId> 
     <version>${spring.webflow.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.webflow</groupId> 
     <artifactId>spring-js</artifactId> 
     <version>${spring.webflow.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.webflow</groupId> 
     <artifactId>spring-webflow</artifactId> 
     <version>${spring.webflow.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>${jackson-mapper-asl.version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.xml.bind</groupId> 
     <artifactId>jaxb-api</artifactId> 
     <version>${jaxb-api.version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibenate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>${hibenate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-ehcache</artifactId> 
     <version>${hibenate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.3.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.6</version> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-pool</groupId> 
     <artifactId>commons-pool</artifactId> 
     <version>20030825.183949</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.0.3</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.9</version> 
    </dependency> 
    <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.8</version> 
    </dependency> 
    <dependency> 
     <groupId>org.easymock</groupId> 
     <artifactId>easymock</artifactId> 
     <version>3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${aspectj.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjweaver</artifactId> 
     <version>${aspectj.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.ehcache</groupId> 
     <artifactId>ehcache</artifactId> 
     <version>2.7.5</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     <version>3.2</version> 
    </dependency> 

</dependencies> 
+0

perché il -1 per me? –

+0

Ho provato la prima risposta data in un post SO, ma non funziona. Per favore aiuto. https://stackoverflow.com/questions/4123044/maven-3-warnings-about-build-plugins-plugin-version –

+1

Mostra la sezione delle dipendenze del tuo POM. – Henry

risposta

5

Apri il tuo file pom. Guarda le classi mancanti nel tuo errore. Trova i tag per queste classi nel tuo file pom e poi leggi i passaggi successivi.

Hai due avvisi. Il primo ti avvisa che hai la stessa dipendenza dichiarata due volte, ma con versioni diverse. Quando si utilizzano le classi da org.apache.httpcomponents: httpclient, in che modo Maven deve sapere che si desiderano le classi dalla 4.1.2 o 4.0.3? Elimina il tag dipendenza per uno di essi.

Il secondo avviso indica che il plugin org.codehaus.mojo: tomcat-maven-plugin è dichiarato senza versione. Quando dichiari una dipendenza o un plugin, dovresti sempre usare anche una versione, a meno che la versione non sia ereditata da una sezione pluginManagement o dependencyManagement. Per risolvere questo problema, trovare il plug-in sotto <build><plugins> e impostare esplicitamente una versione da utilizzare.

È possibile ottenere il proprio numero di versione per Eclipse (se installato) utilizzando - Fare clic su Finestra -> Preferenze -> Maven -> Installazione. Ti mostrerà la finestra di installazione con la versione di Maven.

+0

Spiegazione semplice e chiara, grazie! –

0

Le avvertenze si verificano perché i file .pom per la build - il progetto e le sue dipendenze - contengono informazioni che sembra essere in contraddizione o è mancante. L'implementazione di Maven avviene comunque, ma potrebbe voler ripulire una versione futura di Maven per risolvere i problemi in modo più pulito, a quel punto potrebbe non essere più in grado di gestire questi problemi.

È improbabile che questo causi un problema finché non si aggiornano le versioni di Maven. Data la tua descrizione della tua esperienza con Maven, ti consiglio di lasciarla da sola fino a quando non avrai più esperienza e potrai affrontarla comodamente. Nel frattempo, gli avvertimenti saranno lì per ricordartelo.

+0

Sto imparando la primavera 4 da un libro e non so se questi avvertimenti causeranno problemi in futuro. –

1

la maggior parte delle volte queste avvertenze si aprono perché, quando si definiscono le dipendenze nel proprio file pom, si è dimenticato di specificare gli attributi necessari per la depenance (idtifactID, groupId, version). di solito questo dosatore crea problemi a meno che non si debba usare una versione specifica di una dipendenza.

Problemi correlati