“ mvn clean install”在命令行中失败,但在intellij

时间:2019-11-28 16:48:14

标签: intellij-idea

java和intellij的新手,如果我不能清楚地描述问题,请原谅我。 全新安装的intellij,全新导入的Java项目。

从一开始,该项目似乎就可以在intellij中很好地构建,在GUI中,存在着生命周期的清理/编译/验证/安装/...。我单击“清洁”,然后安装,它会触发单元测试并通过所有测试。现在我进入命令行的项目根目录,“ mvn clean install”也通过了。

现在,我对资源文件* .sql进行了更改,该文件用于单元测试的内存数据库设置。我单击清洁,然后安装,仍然成功通过。

现在我再次进入命令行,“ mvn clean install”在单元测试中失败。

我现在很困惑,无论哪种方式我都在做“清洁”工作,是什么原因以及如何解决这个问题?

顺便说一句,在Visual Studio中工作了很长时间之后,这个java和intellij给了我心脏病,为什么Java中的构建系统如此困难和混乱?

3 个答案:

答案 0 :(得分:1)

您的项目的配置可能与maven pom.xml文件不同。如果两者的配置不同,则会遇到问题。我猜想在IntelliJ Project文件中正确配置了一些依赖关系,但在pom.xml中没有正确配置。我通常有相反的问题。我仅使用pom.xml来指定依赖项,并依靠maven插件刷新项目(日食)。

使用IntelliJ,已经有几年了,但是我记得同样的想法。尝试删除项目文件,然后导入现有的maven pom文件。然后仅使用pom.xml而不使用IntelliJ的项目界面来修改依赖项。如果正确定义了pom.xml,则将首先尝试进行项目导入。这在很大程度上取决于先前从事该项目的开发人员。

答案 1 :(得分:1)

Maven实际上是一个非常强大的(有时不是很古怪的)构建工具,并且在命令行或“内部” IntelliJ中执行之间的差异通常很容易解释。

请检查:

  • 您正在运行相同版本的maven(使用-version检查命令行,与设置中的intellij设置进行比较
  • 您正在为maven vs intellij使用相同的本地.m2文件夹(本地存储库)
  • 您没有在intellij中运行任何“配置文件”(请确保未选中任何选项)。
  • 您不会跳过任何测试,因为它们以“ IT”(意味着集成测试)结尾

这是造成差异的常见原因。

如果您发布失败的构建日志,我们也许可以提供更多帮助。

答案 2 :(得分:0)

好的,我的朋友发现了这个问题,在intellij的Maven设置中,有一个“ Runner”页面,那里有一个“ Skip test”。就我而言,它已经过检查,因此intellij中的运行跳过了单元测试(应该失败),并执行了所有其他操作,使其看起来像通过了。 对于我来说,仍然有些困惑,但是这个“跑步者”->“跳过测试”解决了这个问题。 对IntelliJ感到非常沮丧。