2013-10-10 3 views
0

나는 완전히 maven에 익숙하다.메이븐 어셈블리 파일에서 jar 파일을 덮어 쓰는 것을 피하는 방법

그리고 디버깅 할 다음 maven 어셈블리 파일이 있습니다.

<assembly> 
    <id>bin</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <!-- Adds dependencies to zip package under lib directory --> 
    <dependencySets> 
     <dependencySet> 
      <useProjectArtifact>false</useProjectArtifact> 
      <outputDirectory>lib</outputDirectory> 
      <unpack>false</unpack> 
     </dependencySet> 
    </dependencySets> 

    <fileSets> 
     <fileSet> 
      <directory>${project.build.scriptSourceDirectory}</directory> 
      <outputDirectory></outputDirectory> 
      <includes> 
       <include>startup.*</include> 
      </includes> 
     </fileSet> 
     <!-- adds jar package to the root directory of zip package --> 
     <fileSet> 
      <directory>${project.build.directory}</directory> 
      <outputDirectory></outputDirectory> 
      <includes> 
       <include>*.jar</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

위 파일의 문제는 기본 응용 프로그램이 두 개의 관련 프로젝트에서 병을 가져와야한다는 것입니다.

두 프로젝트 모두 같은 이름의 항아리가 있습니다.

mvn clean assembly : assembly를 실행하면 두 프로젝트의 모든 병을 하나의 폴더로 복사합니다.

분명히 일부 jar 파일이 덮어 쓰여지고 문제가 시작됩니다.

이로 인해 ClassNotFound 오류가 발생하기 시작합니다.

제발 도와주세요.

또한 $ {project.build.scriptSourceDirectory} 및 $ {project.build.directory} 변수가 정의되었는지 확실하지 않습니다.

전체 소스 코드를 검색했지만 좋지 않습니다.

이제는 이러한 변수가 특정 변수가 될 것으로 의심되지만이 점을 이해하기가 어렵습니다.

절대적으로 메이븐을위한 멋진 메이븐 튜토리얼을 가지고 있다면, 제공하십시오.

답변