【发布时间】:2018-12-04 06:54:40
【问题描述】:
我有一个非常直截了当的问题,但很难找到准确的答案。
当我们使用 mvn build 时,我们必须进行全新安装以查看我们构建的工件中的最新代码更改的确切情况是什么。即仅安装不会为我们这样做。
提前致谢。
【问题讨论】:
我有一个非常直截了当的问题,但很难找到准确的答案。
当我们使用 mvn build 时,我们必须进行全新安装以查看我们构建的工件中的最新代码更改的确切情况是什么。即仅安装不会为我们这样做。
提前致谢。
【问题讨论】:
基本上
mvn clean install
和
一样mvn clean && mvn install
为了回答您的问题,在清理 Maven 生成的文件和目录时需要它是执行另一个 install 之前的主要要求。
与代码的更改有关,我认为这更多的是清理 Maven 生成的 target 文件夹,因此当没有太多更改时,大多数编译的文件将被覆盖。
如果从以前的构建中删除/重构了一个类。如果您不清理,可能仍会留下一些引用,这些引用会被打包到随后创建的 jar 中。
来自ernest分享的official documentation(格式化我的),
但是如果我们尝试使用
mvn install构建项目而没有任何clean生命周期,那么我们会看到 2 个错误
- maven build 仍然成功编译项目maven 甚至
- 生成一个包含损坏类的 jar
- moduleB 没有被重新编译,因此也被破坏了。
另外,最好的建议方法是使用
mvn verify
【讨论】:
mvn verify 通常有助于将不需要的 install 打包到本地存储库中
mvn verify 是运行例如集成测试和覆盖率,以及实施者插件目标。我不明白它如何影响运行mvn clean。如果我理解正确(来自@ernest_k 共享的链接),如果所有插件都能正确检测到更改,则无需运行“干净”。但是,它们不是。
mvn install 也会运行集成测试,只是验证少了一步……是的,要检测的更改是 maven 的工作。