2017-11-27 2 views
1

나는 gradle 프로젝트가 있습니다. 이 프로젝트에는 많은 모듈이 포함되어 있습니다. 일부 모듈을 활성화하거나 비활성화하여 2 개의 다른 실행 파일을 만들고 싶습니다.두 가지 구성으로 컴파일 gradle

dependencies { 
    compile project(':module1') 
    compile project(':module2') 
} 

내가 모듈 1과 모듈 2, 오직 모듈 1과 다른 하나에 실행 파일을 싶습니다 나는 다음과 같은 모듈 1과 모듈 2 하나의 실행 파일을 가지고있다.

실행 파일을 생성하려면 launch4j와 shadowjar를 사용했습니다.

어떻게 할 수 있습니까?

감사

+0

그래드 빌드 명령을 하나만 사용 하시겠습니까? – LazerBanana

+0

예, 하나의 gradle 작업. – Barthos33

답변

2

당신은 아마도 항아리 작업을해야합니다 내 java-flavours-plugin

plugins { 
    id "com.lazan.javaflavours" version "1.2" 
} 
javaFlavours { 
    flavour 'version1' 
    flavour 'version2' 
} 
dependencies { 
    compile 'some:common-dependency:1.0' 
    version1Compile project(':module1') 
    version2Compile project(':module2') 
} 

각각의 맛 (예 : 버전 1 & 버전 2)를 사용할 수는 항아리는 다운 스트림 모듈/작업에 의해 소비 될 수있다. sourceSets.version1.runtimeClasspath 등을 참조 할 수도 있습니다.

참고 : 플러그인은 특정 자바 소스 및 리소스를 지원합니다. 해당 기능이 필요한지 확실하지 않습니다.

+0

동의합니다. 이전에 다른 jar 작업을 만들고 단지 2 개의 아티팩트를 내뱉습니다. – LazerBanana

+1

맛의 소스/리소스가없는 경우 jar는 정확히 같아야합니다. 다른 변이 종속성이 있습니다 –

+0

코드를 추가 할 때 다음과 같은 오류 메시지가 나타납니다 : 인수에 대해 version1Compile() 메소드를 찾을 수 없습니다 [ 프로젝트 ': module1'] 프로젝트에 나는 내 작업을 어떻게 만들 수 있는지 정말로 모르겠다. 작업 version1Compile() { sourceSets.version1.runtimeClasspath 작업 = [ 'launch4j'] } 당신은 내가 무엇을 제안 아주 다른 일을하는 것처럼 – Barthos33

관련 문제