2016-02-04 47 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' 
     } 
    } 
} 

希望它可以帮助。

相关问题