[WARNING] *****************************************************************
[WARNING] * Your build is requesting parallel execution, but project *
[WARNING] * contains the following plugin(s) that have goals not marked *
[WARNING] * as @threadSafe to support parallel building. *
[WARNING] * While this /may/ work fine, please look for plugin updates *
[WARNING] * and/or request plugins be made thread-safe. *
[WARNING] * If reporting an issue, report it against the plugin in *
[WARNING] * question, not against maven-core *
[WARNING] *****************************************************************
[WARNING] The following plugins are not marked @threadSafe in test-project:
[WARNING] de.dentrassi.maven:rpm:0.9.2
[WARNING] Enable debug to see more precisely which goals are not marked @threadSafe.
[WARNING] *****************************************************************
9条答案
按热度按时间xoefb8l81#
注:第一件事是AFAIK,除了这里的所有答案,Maven中没有其他内置选项可用。
使用多线程运行maven build可以加快构建速度。例如:
其中-T用于根据硬件指定所需的线程数。
Below are the variants from wiki(第一个字母)
Maven 3.x具有执行并行构建的功能。命令如下所示:
如何评估执行(See Parallel builds in Maven 3)?
图中的每个节点代表一个多模块构建中的一个模块,“级别”只是表示到内部reactor依赖关系图中第一个模块的距离。Maven根据多模块构建中声明的模块间依赖关系计算此图。请注意,父Maven项目也是一个依赖关系。这解释了为什么大多数项目图的顶部只有一个节点。2React器外部的依赖关系不影响这个图。
最后,如果您想跳过测试执行,也可以使用
-DskipTests
。***注意:***您的一些插件可能与多线程构建器不兼容,它可能会工作。但它会给予以下警告消息。您可能需要查看插件文档以获得多线程支持。
eqoofvh92#
在我的实际项目中:
mvn clean install
[信息]总时间:凌晨1点05分mvn clean install -DskipTests
[信息]总时间:18点35分mvn clean install -Dmaven.test.skip -DskipTests
[信息]总时间:10时58分mvn -T 1C clean install -Dmaven.test.skip -DskipTests
[信息]总时间:04:00分1.我们还可以跳过要生成的javadoc,如Archmed注解,方法是添加**-Dmaven.javadoc.skip=true**
mvn -T 1C clean install -Dmaven.test.skip -DskipTests -Dmaven.javadoc.skip=true
1.不要使用imports,在IntelliJ上,选择〉Analyze〉Run inspection by name〉 imports,以查找所有 * 导入并更正它。
1.删除项目中所有未使用的导入〉在Intellij上〉分析〉按名称运行检查〉未使用的导入
1.删除Intellij上所有未使用的代码(类、变量、字段、参数等):分析〉按名称运行检查〉未使用的声明。
1.升级到最新JAVA版本
1.我发现任务mvn clean在构建前需要2分钟来清理TARGET文件夹。我确实创建了一个名为quickclean的新任务,并且我使用它来代替清理,方法是
mvn -T 1C quickclean install -Dmaven.test.skip -DskipTests
。这个新任务quickclean只是将构建文件夹从TARGET重命名为TARGET-yyyy-MM-dd-HH-mm(* 什么是非常快 *)。所以现在,每次您创建一个新的mvn quickclean install...
时,都会有一个包含构建时间的文件夹。不方便的地方是,这可能会占用大量硬盘空间,所以有时候你必须清理所有这些目录。2为此我创建了另一个任务,叫做:trashclean,把所有这个文件夹到垃圾桶。我运行这个任务可能每周的时间。或每月,这取决于我的工作mvn trashclean
。如果要使用这个概念,需要在pom.xml中添加以下内容
hyrbngr73#
您可以使用一些small-2技巧来优化构建,例如
1.如果您已经编写了Junit测试,并且不想每次都运行测试用例,则可以使用
-DskipTests=true
1.本地安装Nexus或存储库
1.您可以将内存配置调整到最佳状态,例如:将此行添加到
mvn.bat
集合MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m
有关详细信息,请查看How to Speed Your Maven build
xqnpmsa84#
你可以做一个黑客的方式,如果你有一些额外的RAM像我一样,你不需要SSD,因为它的敏感SSD做了很多读写.即使你禁用+位(MacOS -我不记得如果赢有类似的问题).但是
1.创建RAM驱动器(方法数量取决于操作系统)并将其安装到/Users/Username/volatile文件夹
1.在MVN_HOME/lib中找到maven模块构建器X.X.X.jar
1.在JAR文件中,通过修改
<build><directory>/Users/Username/volatile/${project.groupId}/${project.artifactId}/${project.version}/target
1.从现在开始,所有的项目编译都将在内存中完成。这是一个差异,即使与SSD相比。
是的,它的黑客和一些maven插件可以停止工作顺便说一句。
5n0oy7gb5#
如果使用命令行,您可以检查您的计算机有多少个内核并使用所有内核,如果您还想跳过测试,您可以添加
-DskipTests
例如,我有8核处理器:laik7k3q6#
除了许多人已经提到的并行运行之外,尝试以下maven选项可以加快构建速度-XX:+TieredCompilation -XX:TieredStopAtLevel=1
wztqucjr7#
使用内存磁盘的低级别速度(Windows)
我的另一个技巧是使用内存磁盘
1.创建一个2GB的内存磁盘(例如 D:)
1.将IDE、Maven、JDK和
.m2/repository
安装到该内存磁盘(D:/m2/
)。1.编辑Maven的
D:/maven/conf/settings.xml
以使用该内存磁盘存储库(<localRepository>D:/m2</localRepository>
)1.将项目放入内存盘。
1.运行在Ramdisk中具有临时文件夹的项目。
在我的机器上我把
进入
两种结果均为高端(
-DskipTests -T 12
)警告:不要忘记在关机前保存ramdisk,否则您的工作会丢失。
看看这头野兽:
zzzyeukh8#
您可以尝试turbo-maven-plugin来帮助加快您的多模块Maven本地构建(我是插件作者之一)?
https://github.com/sparebank1utvikling/turbo-maven-plugin
它的工作原理是分析哪些模块实际上有代码更改,并只构建那些模块和依赖于它们的模块。更多关于它如何工作的信息,请点击这里:
https://medium.com/sparebank1-digital/speed-up-your-multi-module-maven-builds-with-turbo-maven-plugin-4be0eb2a2601
falq053o9#
如果您使用的是带有maven的spring Boot ,并且您觉得依赖项进入系统的速度很慢,请尝试在pom.xml中进行以下设置
我发现版本2.7.0下载依赖项的速度比其他版本快。