我有一个战争模块(C),它取决于另外两个模块(A,B)。当我更改A并为C mvn package
进行重新打包时,B也被重新编译(尽管其中没有任何内容发生变化),并且需要花费大量时间。我怎么告诉maven跳过那个?
TKS。
答案 0 :(得分:1)
使用新的编译器插件版本3.1。它进行了一个增量编译,对我来说非常有效。它在模块中找到更改时执行完整编译,否则它不会编译任何内容。
http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html
增量模式是默认模式,因此实际上除了更新版本之外没有其他任何事情可做!
当然,您不应提前进行清洁。这将导致完全编译。
答案 1 :(得分:0)
从项目中删除B
,将其从相关的父POM中排除。您可以在开发配置文件中执行此操作。这样,它从maven缓存加载而不是每次都重新编译。
答案 2 :(得分:0)
您也可以使用-pl选项。 Pl代表“项目列表”。你输入
mvn -pl myProjA,myProjB clean install
这只会构建这两个项目。但要注意,你可能会监督必要的项目建设。
http://java.dzone.com/articles/5-maven-tips
我无法在maven文档中找到这个,但我确信它也在那里。