Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven/mvn warnings - It is highly recommended to fix these problems because they threaten the stability of your build

Tags:

This question is NOT about the Spring framework or J2EE as such.

As per my book, I have a Spring project in eclipse-jee. It tells me to build the project with maven. I am new to maven and I don't know what I am doing with it.

So, I used windows cmd to get to my project folder in eclipse and executed mvn package -DskipTests. Now, this succeeds with a BUILD SUCCESS message, but it also gives me warnings given below.

Please tell me why the warnings occur and how can ignoring them could affect the code in the future ?

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

Dependencies section of my 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> 
like image 212
Erran Morad Avatar asked May 17 '14 07:05

Erran Morad


2 Answers

Open your pom file. Look at the missing classes in your error. In your pom file, find the dependencies which would contain those classes and then read the next steps.

You have two warnings. The first warns you that you have the same dependency declared twice, but with different versions. When you are using classes from org.apache.httpcomponents:httpclient, how is Maven to know you want classes from 4.1.2, or 4.0.3? Delete the dependency tag for one of them.

The second warning says that the plugin org.codehaus.mojo:tomcat-maven-plugin is declared without a version. When you declare a dependency or plugin, you should always use a version as well, unless the version is inherited from a pluginManagement or dependencyManagement section. To fix this problem, find the plugin under <build><plugins>, and explicitly set a version to use.

You can get your version number for eclipse (if you installed it) using - Click Window –> Preferences –> Maven –> Installation . It will show you installation window with Maven version.

like image 117
Erran Morad Avatar answered Oct 02 '22 04:10

Erran Morad


most of the time these warningns pop up because, when you where defining your dependencies in your pom file you forgot to specify the attributes needed for depenceny (artifactID, groupId, version). usually this dosent make any problem unless you have to use an specific version of a dependency.

like image 36
Mr.Q Avatar answered Oct 02 '22 06:10

Mr.Q