Подтвердить что ты не робот

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"

4b9b3361

Ответ 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.