你想达到什么是可能的,但肯定不应该如何使用gradle。你应该使用gradle war插件(或者可能存在GWT
项目的任何插件 - 机会非常高),但是因为我不知道如何(和如果)它与GWT
无缝集成,所以我不会推荐它。 幸运的是,gradle是非常灵活的系统,可以在不应用任何插件的情况下完成。
下面的脚本只是一个概念验证,但可以很容易地扩展:
repositories {
mavenCentral()
}
configurations {
eclipse
eclipseRt
}
dependencies {
eclipse 'com.google.guava:guava:18.0'
eclipseRt 'javax.servlet:servlet-api:2.5'
}
task copyToWebInfLib(type: Copy) {
from configurations.eclipse
into 'WEB-INF/lib'
}
task modifyEclispeClasspath << {
//here add dependencies from *both* configurations
//to eclipse classpath
}
说明:
首先您需要添加相应的库其中所希望的依赖性保持的。您可以添加多个存储库。
然后您需要定义两个配置(配置基本上是一个依赖集的名称)。为什么两个?因为您需要提供开发和复制到WEB-INF/lib
(如番石榴)和仅用于开发(例如servlet api - 由servlet容器提供)所需的依赖关系。 War
上面提到的插件为你处理这个(providedCompile和providedRuntime配置),但在这里你需要自己创建配置。您可以稍后更改名称。
现在来到依赖关系块。在这里您声明了您在项目中使用的依赖关系,但请记住用适当的配置名称标记它们。
最后你需要(Copy
型的)任务,以解决依赖关系 - 只有那些标有日食(配置名称)将被复制到文件夹WEB-INF/lib
。第二项任务是修改适当的eclipse配置文件。由于我不每天使用eclipse,所以我不知道如何修改这些文件。但您只需要知道格式,并可能使用XmlSlurper
(例如, (AFAIK eclipse文件保存为XML格式)。
一般来说就是这样。随意提出其他问题。使用gradle wrapper也是个好主意,但这是一个额外的步骤。
这是你在找什么? – Opal 2014-10-13 06:25:09
是的,有点。我想我需要检查我的类路径,如果该条目已经存在,并删除旧版本等。所以我假设没有什么自动在Gradle中为此? – Navigateur 2014-10-13 10:03:36
有一个eclipse插件,但我不确定它是否适用于GWT项目,我想不是。我准备的实际上是半自动解决方案。你可以从classpath中删除所有的依赖关系,并用gradle来准备它们。 – Opal 2014-10-13 10:06:14