2012-04-25 7 views
21

jarファイル内の重複のpom.xmlとpom.propertiesファイルを生成します。生成されたjarのMETA-INFでは、重複するpom.xmlとpom.propertiesファイルが見つかりました。誰か説明できますか?ありがとう。Mavenは私が私のMavenベースのSpringアプリケーションをパッケージ化

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、ベンダー:S Javaのホーム:C:\ Program Files(x86)\ Java \ jdk1.6.0_30 \ jre デフォルトロケール:en_US、プラットフォームエンコーディング:Cp1252 OS名:「Windows 7」、バージョン:「6.1」、アーチ:「x86の」家族:あなたはduplicateによって何を意味するか、「窓」

+0

「mvn -version」の出力をここに書き込んでください。 –

+0

出力を追加しました。 – bnguyen82

+0

ありがとうございます。私もそれを探します。私はここでmvnバージョン3を実行し、私は同じ動作をしました。 jarファイル内のダブルファイル。 –

答えて

-5

わからないが、Mavenのが作成したjarファイルがMETA-INFフォルダにpom.xmlpom.propertiesが付属していません。始める前にガイドのthis sectionを参照してください。

+0

2つのpom.xmlファイルと2つのpom.propertiesファイルがあることを意味します。 – bnguyen82

+0

JarアーカイブはZIPフォーマットに基づいています(実際には、ZIPユーティリティを使ってjarアーカイブを操作できます)。同じ名前のエントリは、抽出処理中に上書きされます。 Eclipse/m2eコンボで構築されたjarファイルを調べると、言及されたファイルのために文字通り重複したエントリが表示されます。実際には迷惑なのは、これがjar cmdlineツールを破ることです(ファイルを更新することはできません)。 –

13

Eclipseのコンフリクト、特にm2e-wtpインテグレーションで発生する多少の共通の問題のようです。

クリーンを実行するリストに含めることで修正できることを示す人もいます。 mvn clean package

また、あなたののM2eインストールを更新し、のM2eまたはm2eclipseの複数のバージョン(前のインディゴのバージョン)がインストールされていないことを確認してみてください。私はこの問題は少し古いですけど、私は思っ

+0

maven-archiverプラグインで問題を追跡するためにhttp://jira.codehaus.org/browse/MSHARED-324を開きました。 Mavenで修正を見ることに興味がある人は、それに投票する必要があります。 –

+0

Maven JAR Plugin 2.6によって暗黙的に修正されているため、この問題は閉鎖しました。 –

6

:この問題に直面して他の人に

いくつかの参照私はこの主題に関するあいまいな情報を共有したい。同じ問題を抱えていて、Eclipseを開いてmavenを実行したときに、ワークスペースの設定がネイティブのフックやポーリングを使用してワークスペースをリフレッシュするように設定されていたことがわかりました。さらに、pom.xmlファイルとpom.propertiesファイルがeclipse ! Eclipseを閉じたり、リフレッシュ・ワークスペース・オプションを削除すると、私の問題が解決しました。これは追跡が難しいものでしたので、うまくいけば他の誰かがこれで恩恵を受けることでしょう。

14

+0

これは私のために働いた。しかし、なぜ説明できますか? – spoulson

+0

Mavenビルドは、META-INFフォルダにmavenファイルを追加します。アプレットまたは類似のプロジェクトを開発している場合、これは問題です。 addMavenDescriptorプロパティは、falseのときにjarファイルからmavenファイルを除外します。 – besc

+0

アプレットを含むプロジェクトでこのエラーが発生しました。それは明らかにm2eに関連しています。私は最終的に、そのバグのための唯一の解決策と思われるmaven記述子を削除しました... – Rob

0

が周りのダンの仕事を@にフォローアップあなたのpom.xmlに

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

を追加します。

私はあなたのソリューションを試してみましたが、それは仕事に表示されます - 一見。しかし、それは最終的な失敗を遅らせるだけです。

ワークスペースがリフレッシュされるときよりもいつも現れます.pom.xmlファイルとpom.propertiesファイルは、/ classesディレクトリに作成されます。その後、後の "パッケージ"の目標は、.jarに重複したファイルを含め、それ以降の署名を破棄します。

ポーリングがオンの場合は、「フェイル・ファースト」になります。それがオフの場合、将来のビルドで任意の時間に失敗する可能性があります。

関連する問題