是的,如果插件正确的话,你可以通过-T1C
加速.正如你所看到的,formatter-maven-plugin
做得很好.正如您所看到的,结果表明它提高了速度.
$ hyperfine -L threads 2,4,6,8,1C -p 'git co -- .' 'mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T {threads}'
Benchmark 1: mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 2
Time (mean ± σ): 10.111 s ± 0.623 s [User: 17.796 s, System: 0.918 s]
Range (min … max): 9.349 s … 11.446 s 10 runs
Benchmark 2: mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 4
Time (mean ± σ): 8.693 s ± 0.629 s [User: 17.247 s, System: 0.862 s]
Range (min … max): 7.827 s … 9.628 s 10 runs
Benchmark 3: mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 6
Time (mean ± σ): 8.829 s ± 0.567 s [User: 18.438 s, System: 0.965 s]
Range (min … max): 8.098 s … 9.803 s 10 runs
Benchmark 4: mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 8
Time (mean ± σ): 9.257 s ± 0.956 s [User: 18.195 s, System: 0.996 s]
Range (min … max): 8.053 s … 10.938 s 10 runs
Benchmark 5: mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 1C
Time (mean ± σ): 8.568 s ± 0.515 s [User: 17.955 s, System: 0.942 s]
Range (min … max): 7.682 s … 9.537 s 10 runs
Summary
'mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 1C' ran
1.01 ± 0.10 times faster than 'mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 4'
1.03 ± 0.09 times faster than 'mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 6'
1.08 ± 0.13 times faster than 'mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 8'
1.18 ± 0.10 times faster than 'mvn net.revelc.code.formatter:formatter-maven-plugin:2.18.0:format -T 2'
例如,与版本maven插件进行比较:
$ hyperfine -L threads 2,4,6,8,1C -p 'git co -- .' 'mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T {threads}'
Benchmark 1: mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 2
Time (mean ± σ): 1.581 s ± 0.104 s [User: 4.641 s, System: 0.198 s]
Range (min … max): 1.513 s … 1.863 s 10 runs
Benchmark 2: mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 4
Time (mean ± σ): 1.575 s ± 0.031 s [User: 4.627 s, System: 0.190 s]
Range (min … max): 1.527 s … 1.623 s 10 runs
Benchmark 3: mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 6
Time (mean ± σ): 1.572 s ± 0.034 s [User: 4.608 s, System: 0.195 s]
Range (min … max): 1.530 s … 1.623 s 10 runs
Benchmark 4: mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 8
Time (mean ± σ): 1.558 s ± 0.031 s [User: 4.589 s, System: 0.192 s]
Range (min … max): 1.481 s … 1.586 s 10 runs
Benchmark 5: mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 1C
Time (mean ± σ): 1.565 s ± 0.024 s [User: 4.597 s, System: 0.196 s]
Range (min … max): 1.533 s … 1.600 s 10 runs
Summary
'mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 8' ran
1.00 ± 0.03 times faster than 'mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 1C'
1.01 ± 0.03 times faster than 'mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 6'
1.01 ± 0.03 times faster than 'mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 4'
1.01 ± 0.07 times faster than 'mvn versions:set -DnewVersion=1.0.0-SNAPSHOT -DgenerateBackupPoms=false -T 2'
在这里你可以看到不同的-T ..
没有区别
我想要从终端运行的东西,在CI中执行判断,在git合并后清理代码库,
您可以仅通过目标在命令行上调用一些目标.(插件必须始终正确操作.).
要在git合并后清理代码库,
如果有两种格式正确的代码状态,则合并不会更改格式(假定自动合并可以工作).除了无法自动完成的冲突(这是IDE的工作).
如果格式不正确,可能会中断生成.
我假设它触发了模块的并行处理.
并行化基于模块级别
maven遵循依赖关系的顺序似乎是合乎逻辑的.
是的,Maven分析了react 堆的顺序.
有趣的是,您提到这可以通过每个插件进行控制.
插件可以简单地读取its上的pom文件,从而绕过react 堆的信息...一些插件可以做到这一点(版本maven-plugin),这意味着插件可以自己做任何事情,但重复了maven本身已经实现的逻辑.
更新:版本maven插件不会覆盖reactor,它不会考虑此信息的存在.它只是在自己工作