簡體   English   中英

在Eclipse中聲明編譯和運行時之間的瞬時依賴關系的最佳方法是什么?

[英]What is the best way to declare transient dependencies between compile and runtime with Eclipse?

我們正在尋求在Eclipse上改進Java構建過程。 目前,我們使用Gradle! 作為這項工作的一部分,我們正在研究是否正在以最佳方式使用Gradle。 我們將Eclipse插件用於Gradle,並使用compile聲明我們的依賴項。 不幸的是,這給我們生成的Eclipse項目增加了大量的臨時依賴關系,這是不希望的。 這些額外的依賴項僅在運行時有效。

那么,是否有一種方法可以在Gradle中聲明依賴項ONCE,並將其編譯依賴項設置為第一級依賴項,並將其運行時依賴項設置為第一級並加上瞬態依賴項?

當前,我們將@jar語法與compile一起使用,這為我們提供了用於編譯的第一級依賴關系,但對於運行時,我們仍然必須再次聲明該依賴關系。 這並不理想,因為我們有兩個地方可以更新依賴項。

有沒有更好的辦法?

我假設您的意思是傳遞依賴。

如果只希望直接依賴項出現在Gradle的編譯類路徑中,則當前的解決方案似乎很合理。 (將來,我們希望開箱即@jar提供更准確的編譯類路徑。)潛在的改進是使compile配置不具有傳遞性(而不是使用@jar )或編寫一個提供自定義功能的插件依賴語法,從而消除了編譯依賴和運行時依賴之間的重復。

但是,這對Eclipse沒有幫助,因為Eclipse沒有單獨的編譯和運行時類路徑的概念。 唯一的出路是讓運行配置負責提供運行時類路徑,但這可能很難設置(例如,運行配置通常是即時創建的),並且Gradle不會有任何過時的對此的支持。 您可以使用Gradle的Eclipse插件的通用XML掛鈎來生成運行配置,但是我不確定Eclipse Gradle集成是否可以使用它們。

由於這些困難,盡管有明顯的缺點,但是大多數Eclipse開發人員都將所有運行時依賴項放在Eclipse項目類路徑上(無論他們是否使用Gradle)。

我們的願景是Gradle有一天可以充當Eclipse的構建引擎。 一旦發生這種情況,IDE和構建工具之間的差異(類路徑,代碼生成,集成測試等)將成為過去。 Gradle現在已經可以充當NetBeans的構建引擎,並且很快也可以充當IntelliJ IDEA(由Android Studio的要求驅動)。

我當然同意@Peter的觀點,即對Eclipse構建過程進行全面檢查是一個長期目標,但在短期內,您可以使用Maven和m2eclipse完成您想要的工作。 遷移到Maven的權衡是否值得額外控制完全取決於您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM