Java 如何使gradle/Eclipse/play框架协同工作?
我尝试使用Gradle和Play框架 在命令行中一切正常,我能够运行Gradle存储库中定义的简单Play项目示例 然而,我在使用EclipseIDE(以及GradleEclipsePlugin)时遇到了一些问题 似乎app/*文件夹中的源代码并没有添加到类路径中,Eclipse项目依赖项也没有显示任何内容 我在这里看到了一篇关于IntellijIDE的类似文章:但我正在努力寻找Eclipse上的解决方案 我首先尝试定义源集,如:Java 如何使gradle/Eclipse/play框架协同工作?,java,eclipse,gradle,playframework,Java,Eclipse,Gradle,Playframework,我尝试使用Gradle和Play框架 在命令行中一切正常,我能够运行Gradle存储库中定义的简单Play项目示例 然而,我在使用EclipseIDE(以及GradleEclipsePlugin)时遇到了一些问题 似乎app/*文件夹中的源代码并没有添加到类路径中,Eclipse项目依赖项也没有显示任何内容 我在这里看到了一篇关于IntellijIDE的类似文章:但我正在努力寻找Eclipse上的解决方案 我首先尝试定义源集,如: sourceSets { main {
sourceSets {
main {
java {
srcDirs = ['app']
}
}
}
然后我得到:
找不到参数[build\u 3exdvo6dxtqw4f3blywgxzcg3$\u run]的方法sourceset()_closure5@50cee09a]在根项目“play-2.4”上
所以我补充说
应用插件:“java”
与Gradle Play插件一起使用时似乎失败:
未能应用插件[class'org.gradle.api.plugins.BasePlugin']
无法添加名为“default”的配置,因为具有该名称的配置已存在
Gradle2.10/Eclipse4.5.1/Play2.4
谢谢你的帮助。谢谢。我终于找到了一种方法,让所有的工作都能一起进行 阅读Eclipse插件()上的Gradle文档,可以通过提供额外的配置来覆盖Eclipse类路径 因此,通过在my build.gradle中使用以下行,可以成功解决播放依赖关系:
eclipse.classpath.plusConfigurations += [ configurations.play ]
此外,文档指定可以通过以下方式添加类路径文件夹:
eclipse.classpath.file {
withXml {
def node = it.asNode()
node.appendNode('classpathentry kind="src" path="app"')
}
}
不幸的是,它似乎不适用于声明为play插件的项目(我不知道为什么)。
我的解决方法是应用Javabase插件并指定正确的源集
这是最终版本。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'
}
}
}
希望能有所帮助。我终于找到了一种方法,使所有这些都能协同工作 阅读Eclipse插件()上的Gradle文档,可以通过提供额外的配置来覆盖Eclipse类路径 因此,通过在my build.gradle中使用以下行,可以成功解决播放依赖关系:
eclipse.classpath.plusConfigurations += [ configurations.play ]
此外,文档指定可以通过以下方式添加类路径文件夹:
eclipse.classpath.file {
withXml {
def node = it.asNode()
node.appendNode('classpathentry kind="src" path="app"')
}
}
不幸的是,它似乎不适用于声明为play插件的项目(我不知道为什么)。
我的解决方法是应用Javabase插件并指定正确的源集
这是最终版本。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'
}
}
}
希望能有所帮助