1

我有一个依赖于其他两个模块(A,B)的战争模块(C)。当我更改 A 并为 C 重新打包时,mvn packageB 也被重新编译(尽管它没有任何变化),并且需要很多时间。我如何告诉 maven 跳过它?谢了。

4

3 回答 3

1

使用新的编译器插件版本 3.1。它进行增量编译,这对我来说非常有用。当它发现模块中的更改时,它会进行完整的编译,否则它不会编译任何东西。

http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html

增量模式是默认的,所以实际上除了更新版本别无他法!

当然,您不应该提前进行清洁。这将始终导致完全编译。

于 2013-08-14T08:38:38.010 回答
0

您也可以使用选项 -pl。Pl 代表“项目列表”。你输入

mvn -pl myProjA,myProjB 全新安装

这将只构建这两个项目。但请注意,您可能会监督必要的构建项目。

http://java.dzone.com/articles/5-maven-tips

我无法在 maven 文档上找到它,但我确信它也在那里。

于 2013-08-15T05:48:17.137 回答
0

B通过将项目从相关的父 POM 中排除来从项目中删除。您可以在开发配置文件中这样做。这样,它是从 maven 缓存中加载的,而不是每次都重新编译。

于 2013-08-14T07:57:56.693 回答