2013-06-18 77 views
1

我有一個用netbeans創建的EJB/Web項目。我已經用netbeans創建了這個項目,所以我們可以快速創建一個工作原型。現在我將它轉換爲Gradle。 我用耳朵插件和我structur在根lib文件夾中放置依賴關係

-root 
|-- ejb.jar 
|-- web.war 

正在建設。我的依賴關係在每個子項目(ejb和web)的build.gradle文件中定義。現在,我希望我的依賴項位於ear/lib文件夾中,而不是在ejb/lib和web/lib文件夾中崩潰。 我知道earlib依賴的概念,但我覺得我不需要在我的web和ejb項目中指定它。我是否需要編寫一個螞蟻任務來完成這個任務,或者有一個優雅的方法。 我試圖儘可能地代表netbeans構建戰爭。

回答

0

正確的解決方案是管理您的依賴關係的範圍。

在JAR項目中,依賴是在編譯範圍的地方,這是確定的,因爲包裝

時在戰爭項目罐子不添加依賴關係,依賴被放置在providedCompile範圍。這允許我編譯我的戰爭,但不能打包我的庫。

在我的項目中,我有我的耳朵建立文件。在這個構建文件中,我用earLib範圍重新添加了所有依賴項(這仍然是錯誤的,因爲我已經定義了兩次依賴項)。通過這樣做,我的依賴關係就放置在我的項目的根目錄中,並位於我定義的lib文件夾中。