2011-11-25 2 views
1

maven-assembly-plugin을 사용하여 일부 데이터베이스 스크립트의 zip 파일을 생성하고 있습니다. 어떤 이유에서든 빌드가 실패하면 대상 디렉토리를 삭제하려고 할 때 즉시 다시 빌드 할 때 (그러나 항상 그런 것은 아닙니다) 즉시 실패 할 수 있다는 점에서 간헐적 인 문제가 있습니다. 그 이유는 복사 한 zip 어셈블리 파일 (maven-assembly-plugin에서 사용)이 잠겨 있기 때문입니다.maven-assembly-plugin이 파일 잠금을 설정합니다.

빌드를 반복적으로 시도하거나 실패한 빌드와 다시 작성 사이에 충분한 시간을두고 있으면 결국 잠금이 해제되고 빌드가 정상적으로 진행됩니다.

이것은 매우 실망 스럽습니다. 문제는 무엇일까요? Windows XP Pro를 사용하고 있습니다.

내 pom.xml 파일 조각은 다음과 같습니다

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2.1</version> 
    <configuration> 
     <descriptors> 
      <descriptor>src/main/sql/zip-assembly.xml</descriptor> 
     </descriptors> 
     <finalName>db-deployment</finalName> 
     <appendAssemblyId>false</appendAssemblyId> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-database-scripts</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
    </execution> 
</executions> 

감사합니다!

+1

실패한 재 구축에서 정확한 오류 메시지는 무엇입니까? 재 구축을 할 때 zip 파일을 열지 않았습니까? 또한 어셈블리 생성의 실패 유형은 무엇입니까? – Raghuram

+0

Windows 또는 Linux에서 사용할 수 있습니까? 빌드 머신이 원격입니까? 그렇다면 웹 서버를 통해 zip 파일에 액세스 할 수 있습니까? 아니면 로컬로 구축하고 있습니까? – mliebelt

+0

감사합니다. 빌드 실패의 원인은이 문제의 일부가 아니므로 zip 파일을 열어 본적이 없습니다. 방금 반복해서 'mvn clean install'을하면 문제가 결국 사라집니다. 그래서 분명히 무언가 임시 잠금이되어 너무 오래 기다리고 있습니다. 앞서 언급했듯이 Windows입니다. 로컬 빌드에 있습니다. '프로세스 모니터'를 사용할 시간. – DaveRlz

답변

0

'프로세스 탐색기'를 사용하면 메이븐 빌드가 실패하더라도이 파일 핸들에 여전히 보유하고있는 자바 프로세스가 있다는 것을 알 수 있습니다. 이 자바 프로세스는 실제로 빌드가 커맨드 라인에서 실행 중일 때 흥미로운 eclipse에 의해 소유된다. 나는 이클립스가 작업 공간에서 파일 변경을 보았고 그 프로젝트를 업데이트하기로 결정했다고 의심한다. 이클립스 업데이 트를 마친 후, 핸들을 삭제하고 내 빌드 문제없이 계속할 수 있습니다.

더 자세히 살펴보면 어셈블리 파일이 main/디렉토리 아래에 빌드되는 것을 볼 수 있습니다. 그러면 이클립스가 왜 영향을 미치는지 확인할 수 있습니다. 나는 그것을 움직일 것이다!

관련 문제