2012-11-18 70 views
3

我有一個WEBAPP多項目Gradle構建與下面的結構。我也在使用SPRING FRAMEWORK。雖然我的bean文件(dao-beans.xml)無法找到,但我無法使Web應用程序在Jetty中運行。如果我將bean文件複製到webapp構建目錄中,他們就會被發現,但是之後Spring無法實例化我的類,因爲它無法在類路徑中找到這些類。我究竟做錯了什麼?不能得到jetty運行在Gradle

+-- build.gradle 
+-- dao-impl 
¦   +-- src 
¦    +-- main 
¦    ¦   +-- java 
¦    ¦   +-- resources 
¦    ¦    +-- dao-beans.xml 
¦    +-- test 
¦     +-- java 
+-- gradle.properties 
+-- presenter 
¦   +-- build.gradle 
¦   +-- src 
¦    +-- main 
¦    ¦   +-- java 
¦    ¦   +-- resources 
¦    ¦   ¦   +-- beans.xml 
¦    ¦   +-- webapp 
¦    ¦    +-- WEB-INF 
¦    ¦     +-- web.xml 
¦    +-- test 
¦     +-- java 
+-- settings.gradle 

主講的的build.gradle:

apply plugin: "jetty" 
apply plugin: "war" 

jettyRun { 
    httpPort = 8080 
    scanIntervalSeconds = 3 
} 

戰爭結構:

├── META-INF 
│   └── MANIFEST.MF 
└── WEB-INF 
    ├── classes 
    │   ├── beans.xml 
    │   ├── *.classes 
    │   └── logback.xml 
    ├── lib 
    │   ├── *.jar 
    └── web.xml 
+0

':presenter'項目如何依賴': dao-impl'項目?您如何在演示者gradle配置中聲明此事?關於依賴關係,請展示更多的演示者項目的gradle配置。這個答案可能是有幫助的(但根據需要修改運行時依賴項,而不僅僅是測試)http://stackoverflow.com/questions/5644011/multi-project-test-dependencies-with-gradle –

回答

1

你需要讓你的 '道IMPL' 一個獨立的Java項目(這樣的頂級項目建立它)。

新文件道IMPL /的build.gradle

apply plugin: "java" 

指導有關子項目的頂級項目。

然後在現有的主持人/的build.gradle文件中添加對其他項目的依賴:

dependencies { 
    ... 
    compile project(':dao-impl').sourceSets.main.output 
} 

這應該會導致在部署碼頭在老地方WEB-INF/lib目錄發出的JAR/dao-impl-xyzjar(如果可能,最好不要使用.sourceSets.main.output,但這兩個表單都應該可以工作)