2014-02-09 102 views
2

所以我有一個gradle項目,顯然有一些問題與eclipse完全集成。 當我用「gradle build」命令構建整個東西並在glassfish4服務器上部署EAR文件時,一切似乎都很好,但是當我嘗試運行 「gradle eclipse」 「gradle eclipseWtp」 將項目導入日食和按下「在服務器上運行」只有應用程序的一部分實際上被部署...我的意思是,當你去管理面板,你可以看到應用程序在那裏,但應用程序仍然不工作,當我去到GLASSFISH_HOME /域/域1 /應用程序的目錄是空的...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,我需要與您完全相同的設置。我有三個項目(一個主項目和兩個子項目:EJB和Web)。我正在嘗試學習如何使用Eclipse集成插件在Eclipse Juno中工作。謝謝! –

+0

不幸的是沒有。最後,我不得不每次都手動重新部署我的項目... –

回答

2

看起來l所有依賴項目也應該有eclipse-wtp插件。以下爲我工作。

allprojects { 
    apply plugin: 'eclipse-wtp' 
} 

我發現這個here

+0

如果您想要應用J2EE實用工具,那麼是需要應用'eclipse-wtp'插件。我已經使用Gradle版本2.3更新了文檔。此外修復了能夠在每個應用'eclipse-wtp'的項目上配置'eclipse.wtp.'屬性的能力。 –