Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
maven,打包而不重新编译模块_Maven - Fatal编程技术网

maven,打包而不重新编译模块

maven,打包而不重新编译模块,maven,Maven,我有一个war模块(C),它依赖于另外两个模块(a,B)。当我更改A并为Cmvn包重新打包时,B也被重新编译(尽管其中没有任何更改),并且需要花费大量时间。我该怎么告诉maven跳过这个? Tks.通过将B从相关父POM中排除,将其从项目中删除。您可以在开发概要中这样做。通过这种方式,它将从maven缓存加载,而不是每次重新编译。通过将其从相关父POM中排除,从项目中删除B。您可以在开发概要中这样做。这样,它就从maven缓存加载,而不是每次都重新编译。使用新的编译器插件版本3.1。它执行增量编

我有一个war模块(C),它依赖于另外两个模块(a,B)。当我更改A并为C
mvn包重新打包时,B也被重新编译(尽管其中没有任何更改),并且需要花费大量时间。我该怎么告诉maven跳过这个?

Tks.

通过将
B
从相关父POM中排除,将其从项目中删除。您可以在开发概要中这样做。通过这种方式,它将从maven缓存加载,而不是每次重新编译。

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

使用新的编译器插件版本3.1。它执行增量编译,对我来说效果非常好。当它在模块中发现更改时,它会执行完整的编译,否则它不会编译任何内容

增量模式是默认模式,因此事实上,除了更新版本之外,没有其他事情可做


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

使用新的编译器插件版本3.1。它执行增量编译,对我来说效果非常好。当它在模块中发现更改时,它会执行完整的编译,否则它不会编译任何内容

增量模式是默认模式,因此事实上,除了更新版本之外,没有其他事情可做


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

您也可以使用选项-pl.pl代表“项目列表”。你打字

mvn-pl myProjA、myProjB清洁安装

这将只建设这两个项目。但要小心,你可能会监督需要建设的项目


我在maven文档中找不到这个,但我确信它也在那里。

您也可以使用选项-pl.pl代表“项目列表”。你打字

mvn-pl myProjA、myProjB清洁安装

这将只建设这两个项目。但要小心,你可能会监督需要建设的项目


我在maven文档中找不到这个,但我确信它也在那里。

你怎么知道B被重新编译了?还有,B是C的子模块吗?a和B之间有依赖关系吗?@yair,因为我在日志中看到它,它是进行编译,然后进行测试,是的,B是C的子模块。@AlexanderKudrevatykh是的,a确实依赖于B。你怎么知道B是重新编译的?还有,B是C的子模块吗?a和B之间有依赖关系吗?@yair,因为我在日志中看到它,它是进行编译,然后进行测试,是的,B是C的子模块。@AlexanderKudrevatykh是的,a确实依赖于B。是的,这就是我正在做的,但我正在寻找更好的方法,因为如果我忘记更改父POM文件并提交它,我的队友会对我大喊大叫:-是的,这就是我正在做的,但我正在寻找一个更好的方法,因为如果我忘记更改父POM文件并提交它,我的队友会对我大喊大叫:-pthanks,它成功了,嗯,部分成功了。也许还有一个后续问题:我可以看到它说:检测到更改,重新编译。。。但是在一些模块上没有什么真正的改变(我完全确定,因为我甚至没有打开那些模块的代码文件),你知道maven上下文中的“改变”意味着什么吗?@tungmail:插件没有应用任何智能算法。如果您更改了模块B中的某些内容,并且A依赖于它,那么它将同时构建这两个模块。这些更改是否对A有任何影响无关紧要。这也是一个优点:您可以在Jenkins上运行它,并且不会出现任何有关“智能”增量编译的问题。警告!当我在2013年11月评估maven编译器插件的增量编译时,它实际上并没有重建模块A,而B发生了变化。这基本上意味着增量编译被破坏了,启用它是危险的。它在默认情况下也被禁用,因为
useIncrementalComplation=true
实际上由于感谢而禁用了它,它工作得很好,部分是这样。也许还有一个后续问题:我可以看到它说:检测到更改,重新编译。。。但是在一些模块上没有什么真正的改变(我完全确定,因为我甚至没有打开那些模块的代码文件),你知道maven上下文中的“改变”意味着什么吗?@tungmail:插件没有应用任何智能算法。如果您更改了模块B中的某些内容,并且A依赖于它,那么它将同时构建这两个模块。这些更改是否对A有任何影响无关紧要。这也是一个优点:您可以在Jenkins上运行它,并且不会出现任何有关“智能”增量编译的问题。警告!当我在2013年11月评估maven编译器插件的增量编译时,它实际上并没有重建模块A,而B发生了变化。这基本上意味着增量编译被破坏了,启用它是危险的。默认情况下它也被禁用,因为
useIncrementalComplation=true
实际上由于