2014-03-24 2 views
0

나는 java-library-distribution 플러그인을보고 있는데 원하는 모든 것을하고 있지만 몇 가지 문제가 있습니다. 대신 group-module-version.zip의 group-module-version-bin.zip가되도록Gradle java-library-distribution 사용자 정의 zip 이름과 jar 위치가

  • 내가 출력 zip 파일의 이름을 제어하려면, I 는 첫 번째 비트를 제어하지만 수 생성 된 이름에 bin을 추가 할 수없는 것 같습니다.

  • 대신 생성 된 지퍼의 최상위 레벨로 프로젝트 항아리에 당기는 내가 종속성과 함께 libs와 디렉토리에 넣어 원하는

  • 좀 자원하지만 내 프로젝트에 끌어 할 이미 존재 함. I 지금은 파일 위치를 리팩터링하지 않으려 고합니다. 만약 내가 src/main/dist에 파일을 넣으면 그들은 정확히 내가 원하는 방식으로 들어갑니다. 그러나 배포판에서 내용을 지정하면 main이 zip의 최상위에 놓입니다. 나는 내용물을 사용하려고 시도했다. 그러나이 파일은 인데, libs와 jar 파일을 포함하는 서브 디렉토리로 옮겨 가야한다.

나는 내 자신의 zip 작업을 쓸 수 있다고 가정하지만 실제로 작동 시키려면 기존 플러그인을 사용하는 것이 훨씬 빠릅니다.

도움 주셔서 감사합니다.

답변

1

다음 코드로 두 번째 및 세 번째 부분을 해결할 수있었습니다. 기본적으로 나는 java-library-distributions 코드를 보았고 배포판 플러그인을 사용하여 plagarised했다.

distributions { 
    main { 
     contents { 
      into('resources/config') { 
       from { 'bin/config' } 
      } 
      into('resources/img') { 
       from { 'bin/img' } 
      } 
      into('lib') { 
       from(jar) 
      } 
      from { 'bin/xxx.bat' } 
     } 
    } 
} 

그러나 출력 파일 이름에 대한 나의 질문은 여전히 ​​유효합니다.

distributions { 
    main { 
     contents { 
      baseName = "Test-${project.getProperty('group')}-${project.getProperty('version')}-bin" 

그러나, 버전은 항상 마지막에 추가됩니다, 다음과 같은 결과를 제공합니다 : 출력 파일의 이름을 제어 할 수있는 기본 이름 속성을 사용

0

빌드/배포/테스트 - group-4.4.0-SNAPSHOT-bin-4.4.0-SNAPSHOT.tar

이름에서 "bin"부분을 다른 곳으로 옮길 수있는 경우이 기능이 작동합니다.

+0

나는 내 동료에게 이름에서 빈을 버리라고 설득하기로 결정했다. :-) 응답 해 주셔서 감사합니다. – Klunk

0

이름의 끝에있는 '-bin'부분을 "분류 자"(Maven 용어)라고합니다. 당신은 당신의 build.gradle의 유물 섹션에서 설정할 수 있습니다

artifacts { yourConfigurationName distZip { classifier = 'bin' } }

코드 '유물'정확히 'distZip'를 같이. 'yourConfigurationName'을 리포지토리에 업로드 할 때이 패키지를 넣는 모든 구성 (build.gradle의 'configurations {yourConfigurationName}'섹션에서 정의한대로)으로 변경하십시오.

이이 몇 시간 나를 위해 일하는 된 group-module-1.2.3-SNAPSHOT-bin.zip

를 생성합니다.저는 Artifactory에 게시하고 있습니다. 그러나 어떤 종류의 업로드와도 작동해야한다고 생각합니다.

관련 문제