我正在使用IntelliJ IDEA 10.0.1和Grails 1.3.7。我有一個依賴於許多日誌庫的mavenized Grails項目。Grails + Maven + JCL會一起工作嗎?
這裏的問題:
我必須使用JCL作爲日誌框架,但每個默認的Grails正在與SLF4J,並有一些默認的依賴像JCL-過SLF4J,這是由每一個Grails項目繼承。首先我排除每一個JCL-過SLF4J傳遞依賴於我的項目POM文件,並與MVN依賴驗證:樹我的聚甲醛是乾淨的任何SLF4J橋接庫。
但仍然jcl-over-slf4j仍然beeing下載到我當地的maven回購當我嘗試啓動我的grails應用程序。這在運行時明顯導致StackOverflowError,因爲jcl-over-slf4j和slf4j-jcl位於類路徑中。
那麼因爲哪個聲明依賴於依賴關係仍然在下載?
由於我的pom是乾淨的,所以顯而易見的結論是Grails本身依賴於這些庫。如前所述,Grails有一些默認依賴關係,每個Grails項目都依賴於這些依賴關係。
我知道我可以排除BuildConfig.groovy文件中的繼承關係,如果我運行grails dependency-report我還可以看到這些依賴關係不再列出。
grails.project.dependency.resolution = {
inherits("global") {
excludes "jcl-over-slf4j", "jul-to-slf4j", "slf4j-log4j12"
}
}
但即使如此,該JCL-過SLF4J依賴仍然beeing下載到我的回購當我開始我的Grails應用程序!我錯過了什麼嗎?當你使用maven化的grails項目時,是否有不同的方法來排除繼承的grails依賴關係?
任何幫助,將不勝感激
謝謝! 斜線
** mvn dependency:resolve-plugins **可能有助於列出插件依賴項 – rlovtang 2011-06-07 15:56:23
Thx for the hint!當我讓它運行時,它揭示了** grails-maven-plugin **對** jcl-over-slf4j **沒有依賴關係(至少沒有直接依賴關係)。但爲什麼它仍然在下載? – 2011-06-08 10:11:32