【问题标题】:clean before every build (package)在每次构建(包)之前清理
【发布时间】:2017-04-26 07:26:34
【问题描述】:

不管构建工具如何,我都看到人们在每次打包/编译之前都在做一个干净的任务/阶段,或者......真的有必要吗? 构建工具是否使用以前构建的重用工件?

【问题讨论】:

  • 这个问题的答案是“视情况而定”。通常,人们在构建之前会执行干净的操作,以确保上一个构建中没有任何可能影响此构建的内容。例如,我可能不想创建一个 jar 文件,其中 90% 的类文件都是以前构建的。

标签: maven ant build


【解决方案1】:

大多数时候,clean install 是默认命令,但我鼓励大家改用 verify

执行clean 时,目标文件夹被删除,这使得无法进行增量构建。插件有足够的信息来检测它们是否应该执行它们的操作。例如:maven-compiler-plugin 比较 java 源文件和编译的类文件(和其他东西),看看是否需要(重新)编译文件。如果您认为某个插件无法在增量构建中正常工作,请为该插件提交问题。

install 在 Maven2 中的多模块中经常需要,但 Maven3 能够解析这些内部模块依赖引用。 “安装”唯一要做的就是将工件复制到本地存储库(=IO=​​昂贵)。与您的同事相比,它会使您的本地存储库看起来不同,这可能会在构建过程中产生不同的结果。最好让构建服务器将这些工件推送到共享的远程存储库,并让每个人从那里拉出这些 SNAPSHOT。仅在极少数情况下调用 install 是有效的(有经验的 Maven 用户知道何时 :)),所以请改用 verify

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 1970-01-01
    • 2011-07-16
    • 2017-02-02
    • 1970-01-01
    • 2016-04-15
    • 2022-01-22
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多