需要在执行mvn spring-boot:run之前进行mvn clean install吗?

6

从Git Repo中拉取一个现有项目

我尝试使用mvn spring-boot:run运行它,但是它报错了。

然后执行了mvn clean install,再次运行mvn spring-boot:run,就可以运行成功了!!!

以前我认为mvn spring-boot:run也执行了mvn clean install的任务!

但是,mvn spring-boot:run如何在编译时考虑最新的代码呢?(我的意思是如果它没有执行install,它不应该进行编译,所以它应该运行陈旧的JAR文件,但是它却获取新的代码更改并刷新了JAR文件)

是否有人能够解释一下这个困惑!


1
唯一需要的部分是 mvn package spring-boot:run。使用 mvn verify 可能会有用,因为它将运行集成测试(如果您的项目中有这些测试)。我强烈建议阅读 https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html。 - khmarbaise
2个回答

4

mvn clean install 用于解决在你的 pom.xml 中列出的依赖关系。如果 pom.xml 没有更改,则不需要运行它。错误很可能是由于本地缺少所需的所有依赖项引起的。


当我在依赖项中进行一些pom更改时,Intellij会自动下载。这是mvn install在后台运行吗? - Aditya Rewari
不。IntelliJ有自己的管理项目结构和(maven)依赖项的方式,因为它只是读取pom.xml文件。这就是为什么您会看到具有“.iml”和“.idea”扩展名的元数据文件。但是,IntelliJ与Maven集成,并且可以用于执行不同的Maven目标,如果这是您想要做的事情。https://www.jetbrains.com/help/idea/work-with-maven-goals.html - 夢のの夢

0

仅有的区别在于mvn spring-boot:runmvn clean install命令在testCompile阶段之后的不同操作。请参考附带的截图。

mvn spring-boot:run

enter image description here

mvn clean install

enter image description here

在运行 mvn clean install 测试之后的后续步骤是 -
建立jar文件,重新打包并安装(默认安装)
然而,由于编译已完成,因此源代码中的任何更改都必须在任一情况下反映出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接