2017-03-29 1 views
1

먼저 내 질문이 중복 된 경우 대상에 있지만 내 질문에복사 외부 폴더 (Maven을 사용) 항아리를 구축하는 동안 내가 검색했는데, 모두 진심으로 사과의

이 질문에 관련 해답을 찾을 수 없습니다 : 나는 지방을 만드는 오전 maven-shade-plugin "을 사용하여 내 프로젝트에서 jar 파일을 열었습니다. 이제는 프로젝트에서 참조하고있는 다른 Config 폴더 (.dll, properties, .init 파일 등)가 있습니다.

이제 내가 원하는 것은 병 생성 (가급적이면 메이븐 빌드 타임) 동안, 내 "구성"폴더도 병 병렬 복사됩니다.

사용 : 메이븐 3.3.9

현재 프로젝트 구조 :.

ProjectParentFolder - 를 이눔 아 - 아이디어 을 --src --config --pom.xml

.

원하는 출력

대상 폴더 - ProjectParentFolder.jar - Config

참고 ** config 폴더를 일부 src 폴더 내부로 복사해야하는 경우이를 수행 할 수 있지만 빌드가 끝난 후에는 jar 파일 외부에 있어야합니다 (병과 병행하는 것이 바람직 함).

TeamCity/uDeploy에서도이 프로세스를 자동화해야하므로 조언하십시오.

답변

0

jars를 소스 폴더에서 필요한 폴더로 복사하는 쉘 스크립트를 작성하십시오.

텍스트 파일에 필요한 모든 병을 정의 할 수 있습니다. 스크립트는 파일에서 필요한 jar를 읽고 대상 폴더에 복사합니다.

+0

은을 yor 대답을 감사합니다,하지만하지 않도록 우리가 셸을 사용하여 GIT에서 체크 아웃 할 수있는 경우, 이상은 좀 지저분한 방법은 복사 한 후 한 곳을 체크 아웃하고 있음 : 예를 들어, 쉘 스크립트를 사용하여 타겟으로 지정하십시오. 서버 목록을 유지 관리해야합니다. – Ashz

+0

jar가 포함 된 상위 폴더를 언급하십시오. jar가 하위 디렉토리에 있거나 더 깊은 곳에 있으면 작동합니다. 자식에 대해 확실하지 않음 – singh30

0

maven-shade-plugin은 주로 uber-jar 패키지로 사용됩니다. 대신 maven-assembly-plugin을 사용할 것을 권한다. assembly.xml에서 config 폴더 (fileSet 요소 사용)를 원하는 위치로 구성 할 수 있습니다.

<fileSets> 
    <fileSet> 
     <directory>${project.build.directory}</directory> 
     <outputDirectory>/Config</outputDirectory> 
     <includes> 
      <include>...</include> 
     </includes> 
    </fileSet> 

관련 문제