[英]How to compile a single module inside it in a multi-module maven project?
[英]How can I compile a multi-module maven project, where a module have both clojure and java code
我有一個多模塊Maven項目,其中一個模塊同時具有Java和Clojure代碼,Clojure代碼需要來自Java源的pojo,而Java源中的另一個類需要Clojure編譯后的代碼(我已經添加了:gen-class和project即使最初給出了一個錯誤,編譯也很好,因為當clojure-maven-plugin和compiles執行clojure:compile和compile時,無法看到Java類I。 但這在管理多個模塊的外部pom中不起作用。 感謝您尋找解決方案的幫助
正如評論之一所說,clojure-maven-plugin無法處理同一模塊中Java和Clojure代碼之間的循環依賴關系。 Java代碼在Clojure代碼之前進行編譯。
但是您可以重組代碼以消除循環依賴。 將Java + Clojure項目(Maven模塊)分成三個部分:
基本Java模塊將至少包括Clojure模塊所需的POJO以及其他可能的常見事物。 Clojure模塊將包含所有Clojure代碼,第二Java模塊將包含Java代碼的一部分,該部分需要由Clojure編譯器生成的類。 僅Clojure模塊需要clojure-maven-plugin。
然后,您可以在這些模塊之間設置依賴性,例如:
只要在Clojure模塊中正確設置了AOT編譯,所有內容現在都應該編譯了。 我相信clojure-maven-plugin AOT默認會編譯所有名稱空間。 沒有AOT編譯, (gen-class)
什么也做不了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.