你想達到什麼是可能的,但肯定不應該如何使用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