【问题标题】:Maven-assembly-plugin & incremental buildMaven-assembly-plugin 和增量构建
【发布时间】:2011-03-25 10:35:09
【问题描述】:

似乎组装插件(或 jar/war 插件)只是愚蠢的。 他们只是无法弄清楚什么时候无事可做。

如果其所有依赖项都比目标旧,则基本的“Makefile”不会重新编译目标。

对于 maven,似乎“一直”都在进行打包! 如果我执行“mvn package”然后执行“mvn integration-test”,Maven 将一次又一次地处理这些包。 由于我构建了一些独立的胖罐子:需要一段时间!

这也是适合你的方式,还是我的配置有问题。

提前感谢您的帮助,
拉斐尔

【问题讨论】:

    标签: maven maven-assembly-plugin incremental-build


    【解决方案1】:

    在 Maven 中存在一个 Life-Cycle,每次调用阶段时都会运行它。

       mvn integration-test
    

    意味着运行集成测试之前的所有阶段(包括集成测试本身),在您的情况下包括包阶段。此外,您不应调用集成测试,因为在这种情况下,集成后测试将不会运行。您应该改为调用 mvn verify。 上面的结果是你应该简单地调用 mvn integration-test 并且包阶段将自动运行。 Maven 不是 Make。

    【讨论】:

    • 很好,但是,这对我来说仍然是一个错误,Maven 会再次打包一个最新的包。这应该是构建工具的第一个特性:增量,只处理必要的。编译阶段就是这种情况,它检查类是否是最新的。我不明白为什么包装不应该是一样的。另外,在某些情况下,我想再次启动我的集成测试套件,而不编译或打包任何东西:例如,当我在远程 test-SQL 服务器上更改了我的测试数据时。
    • 嗯..你写了你在远程 SQL 服务器上更改了你的测试数据......但是你为什么不把这些数据放到你的 maven 项目中,然后通过集成测试来做到这一点......这个想法是在没有手动步骤的情况下自动构建(和测试)。另一方面,查看一个包是否必须更新并不是那么简单,而且某些包格式不支持更新包内的文件。我想到的另一件事是:你有大罐子..也许你应该考虑更小的模块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2014-09-05
    • 2017-09-23
    • 2012-03-25
    • 2014-10-10
    • 2017-08-29
    • 2014-03-12
    相关资源
    最近更新 更多