我有一個多模塊maven項目,其中一個模塊同時擁有java和clojure代碼,clojure代碼需要一個pojo java源代碼和java源代碼中的另一個類需要clojure編譯代碼(我已經添加了:gen-class和項目編譯良好,即使它最初發生錯誤,因爲clojure-maven-plugin和編譯做clojure時未能看到java class I :編譯和編譯)。但是這不是從它管理多模塊的外部pom開始的。感謝任何尋求解決方案的幫助如何編譯一個多模塊maven項目,其中一個模塊同時具有clojure和java代碼
1
A
回答
2
正如其中一條評論所言,clojure-maven-plugin無法在同一模塊中處理Java與Clojure代碼之間的循環依賴關係。 Java代碼是在Clojure代碼之前編譯的。
但是你可以重構代碼來消除循環依賴。拆分的Java + Clojure的項目(Maven的模塊)分成三個:
- 基礎的Java模塊
- Clojure的模塊
- 第二的Java模塊
基本Java模塊將至少包括POJO是Clojure模塊需要並可能還有其他常見的東西。 Clojure模塊將包含所有Clojure代碼,第二個Java模塊將包含需要由Clojure編譯器生成的類的Java代碼部分。只有Clojure模塊需要clojure-maven插件。
你可以那麼這些模塊之間建立依賴關係,使得:
- Clojure的模塊依賴於基本Java假象
- 第二的Java模塊依賴於基本的Java和Clojure的文物
只要Alo編譯在Clojure模塊中正確設置,現在所有東西都應該編譯。我相信clojure-maven-plugin AOT-默認編譯所有命名空間。沒有AOT編譯,(gen-class)
什麼都不做。
+0
是的,這似乎是最好的解決方法,可能是暫時的答案 – Bijoy
相關問題
- 1. maven多模塊項目,用不同的java版本編譯模塊之一
- 2. 如何編譯單個模塊中的兩個多模塊Maven項目
- 3. 發佈多模塊maven項目中只有一個模塊
- 4. Maven多模塊項目編譯
- 5. 如何從多個maven模塊項目中提煉java源碼
- 6. 如何將文件從一個模塊包含到多模塊maven項目中的另一個模塊
- 7. 編譯具有多個內部模塊的TypeScript項目
- 8. 如何在一個maven多模塊項目中使用Spring ROO?
- 9. 編譯一個.aar從多個模塊
- 10. 如何編寫一個android項目及其模塊和庫?
- 11. 創建一個Maven項目模塊樹?
- 12. Maven項目中的多個小模塊
- 13. 如何在maven中使用pom.xml將一個模塊構建到同一項目的另一個模塊中
- 14. 單模塊與多模塊maven項目
- 15. 的Maven(多模塊項目) - 模塊
- 16. Maven多模塊項目導入模塊
- 17. Maven多模塊項目中的源依賴項 - 無法自行編譯模塊
- 18. 如何爲多模塊項目的一個模塊執行不同的目標?
- 19. 如何在多模Maven SVN項目的其他模塊中正確使用另一個模塊的類?
- 20. 如何從一個多模塊Maven項目
- 21. Jacoco和Arquillian在一個多模塊Maven項目
- 22. IT代碼覆蓋多個模塊Maven項目,有不同的父母
- 23. 多模塊項目和maven中心
- 24. 具有多個模塊的Maven包名
- 25. 具有多個maven模塊的Spring引導項目
- 26. 多模塊maven項目dependencymanagement
- 27. maven m2eclipse多模塊項目
- 28. Maven的多模塊項目
- 29. Eclipse Maven多模塊項目
- 30. 多模塊maven項目
基本上你應該避免Java代碼和Clojure代碼之間的相互依賴。目前clojure-maven-plugin不能替代java世界和clojure世界之間的編譯過程。 – Davyzhu
這似乎是一個非常常見的情況,原來我認爲,會有很多解決方案:) – Bijoy