【问题标题】:situations where clean install is a must not just install?必须进行全新安装而不仅仅是安装的情况?
【发布时间】:2018-12-04 06:54:40
【问题描述】:

我有一个非常直截了当的问题,但很难找到准确的答案。

当我们使用 mvn build 时,我们必须进行全新安装以查看我们构建的工件中的最新代码更改的确切情况是什么。即仅安装不会为我们这样做。

提前致谢。

【问题讨论】:

标签: java maven build


【解决方案1】:

基本上

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

【讨论】:

  • 验证有什么帮助?
  • @SupunWijerathne mvn verify 通常有助于将不需要的 install 打包到本地存储库中
  • mvn verify 是运行例如集成测试和覆盖率,以及实施者插件目标。我不明白它如何影响运行mvn clean。如果我理解正确(来自@ernest_k 共享的链接),如果所有插件都能正确检测到更改,则无需运行“干净”。但是,它们不是。
  • @gjoranv 如果您查看 maven 阶段,即使 mvn install 也会运行集成测试,只是验证少了一步……是的,要检测的更改是 maven 的工作。
  • 是的。现在它在那里。当我昨天检查 404 时。谢谢。我会通过并更新。
猜你喜欢
  • 2018-12-30
  • 2016-12-13
  • 2012-06-23
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多