我有一个多模块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项目
- 2. 发布多模块maven项目中只有一个模块
- 3. 如何从多个maven模块项目中提炼java源码
- 4. 如何将文件从一个模块包含到多模块maven项目中的另一个模块
- 5. 编译具有多个内部模块的TypeScript项目
- 6. 编译一个.aar从多个模块
- 7. 如何编写一个android项目及其模块和库?
- 8. Maven多模块项目导入模块
- 9. 的Maven(多模块项目) - 模块
- 10. 如何为多模块项目的一个模块执行不同的目标?
- 11. 如何从一个多模块Maven项目
- 12. 具有多个maven模块的Spring引导项目
- 13. maven m2eclipse多模块项目
- 14. Maven的多模块项目
- 15. 多模块maven项目
- 16. Eclipse Maven多模块项目
- 17. 应该Maven多个模块项目在父级中有一个src目录吗?
- 18. 设计一个多模块项目
- 19. 在代码块中将两个项目编译在一起
- 20. IntelliJ - 将Java项目/模块转换为Maven项目/模块
- 21. 如何让GWT编译多个模块?
- 22. sbt多模块项目从另一个模块导入特征
- 23. 项目中可能有两个Java共享代码模块?
- 24. 多模块项目与Maven和Eclipse
- 25. 运行一个多模块的Maven项目
- 26. Maven cobertura插件 - 多模块项目的一个报告
- 27. 用spring创建一个多模块maven项目
- 28. 模块项目上的maven模块
- 29. 具有相同名称的多个模块的Python项目
- 30. 具有相同GIT子模块的多个Android项目
基本上你应该避免Java代码和Clojure代码之间的相互依赖。目前clojure-maven-plugin不能替代java世界和clojure世界之间的编译过程。 – Davyzhu
这似乎是一个非常常见的情况,原来我认为,会有很多解决方案:) – Bijoy