Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven generates duplicate pom.xml and pom.properties files in a jar

Tags:

I package my Maven-based Spring app with:

mvn install-DskipTests -Peverything.  

And something strange arises. In META-INF of generated jar, I find duplicate pom.xml and pom.properties files. Can someone explain it? Thanks.

enter image description here

Here is extracted pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.abc.xyz</groupId> <artifactId>migrate-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>migrate-app</name> <url>http://maven.apache.org</url> <dependencies>  ..  </dependencies>  <profiles>   <profile>     <id>everything</id>     <build>       <plugins>         <plugin>         <groupId>org.apache.maven.plugins</groupId>         <artifactId>maven-compiler-plugin</artifactId>         <configuration>           <source>1.5</source>           <target>1.5</target>                   </configuration>       </plugin>       <plugin>         <groupId>org.apache.maven.plugins</groupId>         <artifactId>maven-surefire-plugin</artifactId>         <version>2.5</version>         <configuration>           <skipTests>true</skipTests>         </configuration>       </plugin>                   </plugins>     </build>   </profile>   </profiles>    

Output for command:

mvn -version 

Apache Maven 3.0.4 (r1232337; 2012-01-17 15:44:56+0700) Maven home: C:\apache-maven-3.0.4\bin.. Java version: 1.6.0_30, vendor: Sun Microsystems Inc. Java home: C:\Program Files (x86)\Java\jdk1.6.0_30\jre Default locale: en_US, platform encoding: Cp1252 OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

like image 878
bnguyen82 Avatar asked Apr 25 '12 03:04

bnguyen82


People also ask

Can a Maven project have multiple pom files?

Yes you can use Maven Profiles to manage this. Obviously you can tweak this approach to suit your needs however works best.

What is properties in Maven POM XML?

Maven properties are value placeholders, like properties in Ant. Their values are accessible anywhere within a POM by using the notation ${X}, where X is the property. Or they can be used by plugins as default values, for example: In your case you have defined properties as version of java.

Where is POM file stored?

The POM file is named pom. xml and should be located in the root directory of your project.


1 Answers

Add

<build>    <plugins>      <plugin>        <artifactId>maven-jar-plugin</artifactId>        <configuration>          <archive>            <addMavenDescriptor>false</addMavenDescriptor>          </archive>        </configuration>      </plugin>    </plugins> </build> 

to your pom.xml

like image 87
besc Avatar answered Sep 17 '22 22:09

besc