Maven генерирует дубликаты файлов pom.xml и pom.properties в банке
Я упакую свое приложение Spring на основе Maven с помощью
mvn install-DskipTests -Peverything.
И возникает нечто странное. В META-INF созданного jar я нахожу дубликаты файлов pom.xml и pom.properties. Может кто-нибудь объяснить это? Спасибо.
![enter image description here]()
Здесь извлекается 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>
Выход для команды:
mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 15: 44: 56 + 0700) Maven: C:\apache-maven-3.0.4\bin.. Версия Java: 1.6.0_30, поставщик: Sun Microsystems Inc. Java home: C:\Program Files (x86)\Java\jdk1.6.0_30\jre Язык по умолчанию: en_US, кодировка платформы: Cp1252 Название ОС: "windows 7", версия: "6.1", arch: "x86", family: "windows"
Ответы
Ответ 1
Добавить
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
</build>
на ваш pom.xml
Ответ 2
Похоже, что это довольно распространенная проблема, возникающая из-за конфликта в Eclipse, особенно с интеграцией m2e-wtp.
Некоторые люди указывают на то, что их можно устранить, включив в список цели цели чистые, например. mvn clean package
.
Также попробуйте обновить установку m2e и убедитесь, что у вас нет нескольких версий m2e или m2eclipse (версия для предварительного Indigo).
Некоторые ссылки на других людей, сталкивающихся с этой проблемой:
Ответ 3
Я знаю, что эта проблема немного устарела, но я подумал, что поделился бы неясной информацией об этой теме. Я столкнулся с той же проблемой, и я обнаружил, что когда я запускал maven с открытым Eclipse, и мои настройки рабочей области были настроены на обновление рабочей области с использованием собственных перехватов или опроса, дополнительные файлы pom.xml и pom.properties были добавлены eclipse! Закрытие затмения или удаление опции рабочего пространства обновления решили проблему для меня. Это было трудно найти, так что, надеюсь, кто-то еще выиграет от этого.
Ответ 4
Следуйте за тем, как @Dan работает:
Я попробовал ваше решение и, похоже, работает - сначала краснеть. Однако это просто задерживает возможный сбой.
Он появляется, как только обновляется рабочее пространство, файлы pom.xml и pom.properties создаются в каталоге /classes. После этого любая более поздняя цель "пакета" будет включать дубликаты файлов в .jar и, таким образом, разорвать последующее подписание.
Если опрос включен, вы "не быстро". Если это произойдет, вы можете сбой в произвольные моменты в будущих сборках.
Ответ 5
Не уверен, что вы подразумеваете под duplicate
, но банка, созданная maven, поставляется с pom.xml
и pom.properties
в папке META-INF
. См. этот раздел руководства по началу работы maven.