2014-02-09 2 views
2

그래서 Eclipse와 완벽하게 통합되는 일부 문제가있는 gradle 프로젝트가 있습니다. "gradle build"명령으로 모든 것을 빌드하고 glassfish4 서버에 EAR 파일을 배포하면 모든 것이 잘 동작하는 것처럼 보일 것입니다. "gradle eclipse" "gradle eclipseWtp" 이클립스와 언론 "서버에서 실행"응용 프로그램의 일부만 실제로 배치 도착 ... 내 말은, 당신이 관리 패널에 갈 때, 당신은 실제로 거기에 응용 프로그램을 볼 수 있지만, 응용 프로그램은 여전히 ​​작동하지 않으며 내가 갈 때 ... 디렉토리가 비어 도메인/domain1을/응용 프로그램/GLASSFISH_HOME 여기 Eclipse는 Gradle 프로젝트를 올바르게 배포하지 않습니다.

내 Gradle을 파일은 다음과 같습니다 gradle.build (루트)

subprojects { 
    apply plugin: 'java' 
    apply plugin: 'eclipse' 

    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     testCompile 'junit:junit:4.11' 
    } 

    version = '1.0' 

    jar { 
     manifest.attributes provider: 'gradle' 
    } 
} 
,

settings.gradle (루트)

include ":ejb", ":common", ":web", ":ejb-integration-tests", ":ear" 

build.gradle (웹)

apply plugin: 'war' 
apply plugin: 'eclipse-wtp' 

jar { 
    manifest { 
     attributes 'Implementation-Title': 'WorldFighter-WEB', 'Implementation-Version': version 
    } 
} 

war { 
    archiveName 'WorldFighter.war' 
    from 'src/webapp/' 
    webInf { from 'src/additionalWebInf' } 
} 

springVersion = '3.2.2.RELEASE' 
sl4jVersion = '1.7.2' 

dependencies { 

    runtime 'javax.servlet:servlet-api:2.5' 

    compile project(':common') 

    compile(
     [group: 'org.springframework', name: 'spring-orm', version: springVersion], 
     [group: 'org.springframework', name: 'spring-tx', version: springVersion], 
     [group: 'org.springframework', name: 'spring-core', version: springVersion], 
     [group: 'org.springframework', name: 'spring-web', version: springVersion], 
     [group: 'org.springframework', name: 'spring-webmvc', version: springVersion], 
     [group: 'org.springframework', name: 'spring-context', version: springVersion], 
     [group: 'org.springframework', name: 'spring-context-support', version: springVersion] 
    ) 

    compile(
     [group: 'org.slf4j', name: 'slf4j-jcl', version: sl4jVersion], 
     [group: 'org.slf4j', name: 'slf4j-api', version: sl4jVersion] 
    ) 

    compile("org.apache.tiles:tiles-extras:3.0.1") { 
     exclude module: 'org.slf4j:jcl-over-slf4j' 
     exclude module: 'org.slf4j:slf4j-jdk14' 
    } 

    compile 'taglibs:standard:1.1.2', 
      'javax.transaction:jta:1.1', 
      'log4j:log4j:1.2.14', 
      'commons-lang:commons-lang:2.6', 
      'commons-validator:commons-validator:1.4.0' 

} 

build.gradle (EJB)

jar { 
    manifest { 
     attributes 'Implementation-Title': 'WorldFighter-EJB', 'Implementation-Version': version 
    } 
} 

dependencies { 
    compile project(':common') 
} 

build.gradle (귀)

apply plugin: 'ear' 
apply plugin: 'eclipse-wtp' 

jar { 
    manifest { 
     attributes 'Implementation-Title': 'WorldFighter-EAR', 'Implementation-Version': version 
    } 
} 

dependencies { 
    deploy project(path: ':web', configuration: 'archives') 
    deploy project(':ejb') 
    deploy project(':common') 

    earlib 'org.glassfish.extras:glassfish-embedded-all:3.0' 
} 

ear { 

    deploymentDescriptor { 
     applicationName = "WorldFighter" 
     displayName = "WorldFighter" 
     description = "WorldFighter EAR containing EJBs and Web App"  
    } 
} 
+0

입니까? 나는 Gradle을 배우고 있으며 당신과 똑같은 설정이 필요합니다. 나는 3 개의 프로젝트 (하나의 메인 프로젝트와 두 개의 서브 프로젝트 : EJB와 Web)를 가지고있다. Eclipse 통합 플러그인을 사용하여 Eclipse Juno에서 작동하게하는 방법을 배우려고합니다. 고맙습니다! –

+0

불행히도 없습니다. 결국 나는 매번 프로젝트를 수동으로 재배포해야했다 ... –

답변

2

보기 l 이케 모든 의존적 인 프로젝트는 또한 eclipse-wtp 플러그인을 가지고 있어야합니다. 다음은 나를 위해 일합니다.

allprojects { 
    apply plugin: 'eclipse-wtp' 
} 

나는 발견이 here

+0

J2EE 유틸리티를 적용하려면 yes eclipse-wtp 플러그인을 적용해야한다. Gradle 버전 v2.3으로 설명서를 업데이트했습니다. 또한 'eclipse-wtp'를 적용하는 모든 프로젝트에서 'eclipse.wtp.' 속성을 설정할 수있는 기능을 수정했습니다. –

0
당신이 당신의 문제에 대한 해결책을 찾으셨습니까 Buildship 플러그인에서

WTP 지원 yet to come.

관련 문제