我有一台机器,其中发生了多个并行 Maven 执行。每次执行都会在单独的工作区目录中执行以下命令mvn -f main/pom.xml clean package -DskipTests -T 6有人可以让我知道我应该为每次执行使用单独的 Maven 本地回购路径 ( ) 还是我可以为所有并行运行-Dmaven.repo.local=$MAVEN_REPO使用公共目录?.m2通常的做法是什么?Maven 版本 3.5Java 8
3 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
您不能在执行之间共享本地存储库。它们的实现无法容忍多个并发进程访问它们。您可以而且应该在 Internet 上的进程和存储库之间运行本地缓存存储库管理器。那是可以分享的。
猛跑小猪
TA贡献1858条经验 获得超8个赞
我首先要说的是,可以为每个项目设置多个本地存储库或一个本地存储库。事实上,实现它的方法是为每个项目设置自己的 settings.xml。每个 settings.xml 都有一个指向不同路径的 localRepository 标签。运行项目的 Dmaven.repo.local=/path/to/repo 标志将执行指向具有特定本地存储库的 settings.xml。
通常,根本不需要它。Maven 可以处理并行执行,并且为您的所有项目(其中安装和下载所有工件)提供一个中央本地存储库可以促进它们的处理并且不会缩短构建时间。它可以影响你的唯一方法是,如果你的一个项目需要另一个项目创建的工件——但这也不应该由多个本地存储库处理。
添加回答
举报
0/150
提交
取消