2011-03-25 85 views
0

看来,程序集插件(或jar/war插件)是愚蠢的。 无论什么时候什么都没有做,他们无法想象。Maven-assembly-plugin&incremental build

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

对于maven来说,看起来包装是“一直都在”完成的! 如果我做了“mvn package”然后“mvn integration-test”,Maven会一次又一次地处理这些软件包。 由于我建立了一些脂肪独立的罐子:它需要一段时间!

这是否也适用于您的方式,或者是否存在某些配置中损坏的东西。

预先感谢您的帮助,
拉斐尔

回答

0

在Maven中存在它是通过每次调用一个阶段时间运行Life-Cycle

mvn integration-test 

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

+0

很好,但是,对我来说,这对我来说是一个麻烦,Maven会再次打包一个最新的包。 这应该是构建工具的第一个特性:是渐进式的,只处理必要的。 这是编译阶段的情况,它检查类是否是最新的。我不明白为什么它不应该是相同的包装。 另外,有些情况下我想再次启动我的集成测试套件,而不编译或打包任何东西:例如,当我在远程测试SQL服务器上更改测试数据时。 – 2011-03-25 14:13:02

+0

嗯..你写了你在远程SQL服务器上更改了你的测试数据......但是你为什么不把这些数据放到你的maven项目中并且让它通过集成测试来实现......这个想法就是构建并自动测试)而无需手动步骤。另一方面,看看是否必须更新软件包并不是那么简单,而且某些软件包格式不支持软件包内的文件更新。在我脑海中出现的其他事情是:你有大罐子......可能你应该考虑更小的模块。 – khmarbaise 2011-03-26 13:36:07