2014-05-21 3 views
1

나는 gradle (처음으로)을 사용하여 EAR 파일을 작성하는 것을 자동화하려고하는 웹 엔터프라이즈 응용 프로그램을 가지고 있습니다. 다중 환경을위한 gradle ear 응용 프로그램 패키징

나는

1은 엔터프라이즈 애플리케이션 APP_EAR이고 다른 하나는 주요 APP_EAR 귀 파일 내부의 전쟁 파일로 내보내집니다 동적 웹 애플리케이션 APP는 2 개 프로젝트가 있습니다.

나는 gradle을 사용하여 동적 웹 응용 프로그램의 war 파일을 생성하는 방법을 알아 냈습니다.이 war 파일이 들어있는 ear 파일을 만드는 데 gradle을 사용하는 방법을 잘 모르겠습니다.

SYS (시스템 테스트), 나는에 대한 build.gradle 3 작업을 생성

생산을위한 QA (품질 관리) 및 자극 :

내 APP의 전쟁 파일은 각 환경에 대한 3 작업이 포함되어 있습니다 이처럼 내 APP :

task buildSys { 
dependsOn copySys, war 
} 

task buildQa { 
dependsOn copyQa, war 
} 

task buildProd { 
dependsOn copyProd, war 
} 

copySys, copyProd, 등 ... 단지 전쟁이 생성되기 전에 환경에 복사 적절한 구성 파일이 내가 목표로하고 작업을 복사합니다. ,

내가 SYS 환경에 대한 EAR 파일을 생성 할 가정 :

의 내가 SYS에 대한 전쟁 파일을 만드는 오전 가정 해 봅시다

은, 그때 내가 뭘하려고하면 다음과 같다 Gradle을 buildSys

을 실행 해당 단계를 수행하려면 gradle을 사용해야합니다.

1) APP 프로젝트에서 buildSys를 실행하여 sys 환경 에 대한 war 파일을 만듭니다. 2) 생성 된 war 파일을 ear 파일로 패키징하는 buildSysEAR을 실행합니다.

각 환경에 대한 ear 파일을 패키지하기 위해 내 build.gradle에서 3 가지 작업이 필요한지 확실하지 않거나 하나의 귀 작업으로 수행 할 수 있는지 여부와 적절한 전쟁 작업을 호출하도록할지 여부는 확실하지 않습니다. 환경.

이 환경에 대한 전쟁과 귀를 만드는 작업을 수행하고 싶습니다. 전쟁 파일을 귀 파일에 묶는 방법 및/또는 전쟁을위한 올바른 빌드 작업을 트리거하는 방법을 모르겠습니다. APP_EAR 빌드 파일의 파일.

미리 감사드립니다.

답변

1

Gradle은 플러그인을 사용하여 EAR 생성을 지원합니다. WAR를 의존성으로 지정하면 필요한 파일이 생성됩니다. (전쟁 플러그인도 있습니다. 더 간단합니다.)

apply plugin: "ear" 

dependencies 
{ 
    deploy project("some support project") // only necessary for ejb jars 
    earlib "log4j:log4j:1.2.17:jar" 
} 

ear 
{ 
    appDirName "EarContent" // or wherever, defaults to src/main/application 

    deploymentDescriptor 
    { 
     displayName = "app-ear" 
     description = "my application" 

     web = project("APP") 
     value = web.name + '-' + web.version + ".war" 
     webModule(value , "/web-context") // this is the important line, I need the version number 
    } 
} 
+0

답장을 보내 주셔서 감사합니다. 귀 플러그 인에 대해 알고 있지만 올바른 전쟁 빌드를 선택하는 방법을 알지 못했습니다. 당신의 예에서는 전쟁이 끝난 다음 귀를 쌓을 것입니다. 그러나 그것을 어떻게 sys 전쟁이나 qa 전쟁을 구체적으로 구축 할 수 있을까요? 동일한 파일에 3 가지 귀 작업이 필요합니까? – user3547425

+0

예. 빌드하려는 각 전쟁마다 하나씩 다른 구성이 필요합니다. – Zagrev

관련 문제