我有一个Maven Java项目,包含许多模块和一个元模块。我想进行测试。我在控制台中使用:mvn test命令。但是我的测试在编译时失败了,因为找不到其他模块中的类。但在IDE Eclipse中没有错误。我该如何解决这个问题?
答案 0 :(得分:1)
如果您有明确定义的依赖项,请使用 mvn install 而不是mvn test。运行测试也包含在安装阶段,您将获得编译到本地maven存储库所需的模块。
答案 1 :(得分:1)
尝试运行mvn install
。这个编译,打包和运行测试。然后,当编译所有内容时,您可能只能运行mvn test
。但是你不应该(恕我直言),因为只有当你运行完整的过程时,你才能确定你的类的最新版本正在测试中。不要担心效率:如果已经编译了maven,maven就不会编译它们。只有mvn clean install
才能从头开始重建所有内容。
答案 2 :(得分:1)
您的模型需要没有依赖循环!
尝试从父pom所在的文件夹中运行mvn test
。
(细节)
如果您没有带有子模块的父pom。然后,您必须首先为您要测试的模块所在的所有其他模块运行mvn install
。
(Eclipse不需要这个,因为它可以直接解析对其他打开项目的依赖)
但是如果所有模块都属于一个发布周期(所有模块都将使用相同的版本发布),那么使用父模块和子模块/ pom可能是更好的方法 - 因为那时你可以{{ 1}}测试或run mvn
为父pom,maven将按正确的顺序为所有孩子做。 - 安装完所有其他模块后,可以在单个模块上运行mvn test,直到更新其他模块。 - 然后你还需要安装这个更新的模块,或者更好地运行父版本的安装。