2016-02-04 44 views
1

我嘗試使用Gradle with Play框架。如何讓gradle/Eclipse/play框架一起工作?

在命令行中一切正常,我可以運行Gradle存儲庫中定義的簡單Play項目示例。

但是,我有一些問題需要使用Eclipse IDE(以及Gradle Eclipse插件)。

似乎app/*文件夾中的源代碼不會添加到類路徑中,並且Eclipse項目依賴項不會顯示任何內容。

我在這裏看到過類似IntelliJ IDE的帖子:How to make gradle/intellij/play framework work together?但我很努力在Eclipse上找到解決方案。

我嘗試最前一頁定義像sourceSets:

sourceSets { 
    main { 
     java { 
      srcDirs = ['app'] 
     } 
    } 
} 

然後我得到:

找不到方法sourceSets()爲參數[build_3exdvo6dxtqw4f3blywgxzcg3 $ _run_closure5 @ 50cee09a]根工程「發揮-2.4' 。

所以我加

應用插件:「Java的

這似乎與搖籃用來播放插件時失敗:

無法應用插件[班'org.gradle.api.plugins.BasePlugin'] 無法添加名稱爲'default'的配置作爲具有該名稱的配置已存在exi STS。

搖籃2.10/Eclipse的4.5.1/2.4播放

讚賞任何幫助。謝謝。

回答

0

我終於找到了一種讓所有人一起工作的方法。

閱讀關於Eclipse插件的Gradle文檔(https://docs.gradle.org/current/dsl/org.gradle.plugins.ide.eclipse.model.EclipseClasspath.html),Eclipse classpath可以通過提供額外的配置來覆蓋。

所以在我的的build.gradle使用下面的線,播放依賴性被成功地解決:

eclipse.classpath.plusConfigurations += [ configurations.play ] 

此外,文檔指定類路徑文件夾可以添加這樣:​​

eclipse.classpath.file { 
    withXml { 
     def node = it.asNode() 
     node.appendNode('classpathentry kind="src" path="app"') 
    } 
} 

不幸的是,它似乎不適用於聲明爲播放插件的項目(我不明白爲什麼)。

我的解決方法是應用基於java的插件並指定正確的sourceSets。

下面是最終的build.gradle:

apply plugin: 'java-base' 
apply plugin: 'play' 
apply plugin: 'eclipse' 

version = '1.0' 

model { 
    components { 
     play { 
      platform play: '2.4.6', scala: '2.11' 
      injectedRoutesGenerator = true   
     } 
    } 
} 


allprojects { 
    repositories { 
     jcenter() 
     mavenCentral() 
     maven { 
      name "typesafe-maven-release" 
      url "https://repo.typesafe.com/typesafe/maven-releases" 
     } 
     ivy { 
      name "typesafe-ivy-release" 
      url "https://repo.typesafe.com/typesafe/ivy-releases" 
      layout "ivy" 
     } 
    } 
} 

dependencies { 
    play project(":common") 
    play 'com.typesafe.play:filters-helpers_2.11:2.4.6' 
} 

eclipse.classpath.plusConfigurations += [ configurations.play ] 
sourceSets { 
    main { 
     java { 
      srcDir 'app' 
     } 
    } 
} 

希望它可以幫助。

相關問題