2012-04-25 1 views
21

항아리에서 중복의 pom.xml 및 pom.properties 파일을 생성합니다. 생성 된 jar의 META-INF에서 중복 된 pom.xml 및 pom.properties 파일을 찾습니다. 누군가 그것을 설명 할 수 있습니까? 감사. 여기Maven은 내가 내 Maven을 기반 봄 응용 프로그램을 패키지

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 

아파치 메이븐 3.0.4 (r1232337; 2012-01-17 15 : 44 : 56 + 0700) Maven home : 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", 아치 : "86", 가족 : "창"

+0

"mvn -version"에 대한 출력을 여기에 적어주세요. –

+0

출력을 추가했습니다. – bnguyen82

+0

감사합니다. 나는 그것을 역시 찾을 것이다. 여기 mvn 버전 3을 실행하고 동일한 동작을했습니다. 단지 안에있는 이중 파일. –

답변

-5

당신이 duplicate에 의해 의미하지만 받는다는에 의해 생성 된 항아리 META-INF 폴더에 pom.xmlpom.properties와 함께 무엇을하는지 확실하지. 메이븐 시작 안내서의 this section을 참조하십시오.

+0

두 개의 pom.xml 파일과 두 개의 pom.properties 파일이 있음을 의미합니다. – bnguyen82

+0

Jar 아카이브는 ZIP 형식을 기반으로합니다 (사실 ZIP 유틸리티를 사용하여 jar 아카이브를 조작 할 수 있음). 아카이브에서 중복 항목을 허용 할 수 있습니다. 동일한 이름을 가진 항목은 추출 프로세스 중에 간단히 겹쳐 쓰여집니다. Eclipse/m2e 콤보로 빌드 된 jar 파일을 검사 할 때 언급 된 파일에 대해 문자 그대로 중복 된 항목이 표시됩니다. 실제로 귀찮은 것은 jar cmdline 도구를 깨뜨린 것입니다 (어떤 파일도 업데이트 할 수 없음) –

13

Eclipse에서의 충돌로 인해 발생하는 다소 일반적인 문제인 것 같습니다. 특히 m2e-wtp 통합으로 발생합니다.

어떤 사람들은 clean을 실행 목표 목록에 포함하여 해결할 수 있다고 나타냅니다. 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

주위 @ 댄의 일을 따라 당신의 pom.xml

+0

이것은 나를 위해 일했습니다. 그러나, 당신은 왜 설명 할 수 있습니까? – spoulson

+0

Maven 빌드는 META-INF 폴더에 maven 파일을 추가합니다. 애플릿 또는 유사한 프로젝트를 개발중인 경우 이는 문제입니다. addMavenDescriptor 속성은 false 일 때 jar 파일에서 maven 파일을 제외합니다. – besc

+0

애플릿이 포함 된 프로젝트에서이 오류가 발생했습니다. 그것은 m2e와 분명히 관련이 있습니다. 나는 그 버그에 대한 유일한 해결책 인 것처럼 보이는 maven descriptor를 마침내 제거했다 ... - 감사합니다. – Rob

0

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

을 추가

내가 솔루션을 시도하고 작동하는 나타납니다 - 언뜻보기에. 그러나 이는 결국 실패를 지연시키는 것입니다.

작업 공간을 새로 고칠 때보 다 pom.xml 및 pom.properties 파일이/classes 디렉토리에 만들어집니다. 그 이후의 "패키지"목표에는 .jar에 중복 파일이 포함되어 나중에 서명이 중단됩니다.

폴링이 켜져 있으면 "페일 패스트"입니다. 그것이 꺼져 있으면 미래 빌드에서 임의의 시간에 실패 할 수 있습니다.

관련 문제