Windows 10 WSL - Maven配置

16
有没有一种方法可以配置Windows的Maven和WSL的Maven使用相同的.m2/repository和settings.xml文件?
在我的WSL的.bashrc中,我添加了M2_HOME以使用与Windows 10相同的安装路径:
.bashrc:
export M2_HOME=/mnt/c/development/maven
Windows PATH:
C:\development\maven
但是当我在Windows Bash上执行mvn clean install时,会在~/.m2(WSL文件系统)中创建一个.m2文件夹。
3个回答

22

找到了一个可能的解决方案。

我创建了一个符号链接从~/.m2/mnt/c/Users/<username>/.m2

命令:$ ln -s /mnt/c/Users/<username>/.m2 ~/.m2

目前为止都运行得很好。


3
这个“可行”,但是从WSL读取Windows文件系统的性能很差。我得到了以下构建时间:
  • 如果我使用Windows文件系统中的.m2缓存从命令提示符构建,则需要3秒
  • 如果我在WSL文件系统中使用.m2缓存进行构建,则需要3秒
  • 如果我使用上述符号链接从WSL构建,则需要20秒
- agentgonzo
1
WSL和Win是两个文件系统,跨文件系统构建非常慢。我的建议是只保留2份.m2的副本,或将所有内容移动到WSL中。 - WesternGun

1

对@Vitor的回答进行修正:

当你创建符号链接后,下一次(例如如果你指定了错误的目录并想要重试)你将无法创建它,并且会收到“failed to create a symbolic link: file exists”错误。

如果您想重新创建符号链接,则可以使用以下解决方法:$ ln -f -s /mnt/c/Users/<username>/.m2 ~/.m2

[OPTION] 
-f, --force
          remove existing destination files

1

我通过在(WSL)~/.m2/settings.xml中设置本地存储库路径来完成这个操作。
<localRepository>/mnt/c/Users/<username>/.m2/repository</localRepository>

当存储库位于Windows文件系统中时,普通的Maven构建速度有点慢,但是对于Spring Boot本机编译或构建映像(mvn -Pnative native:compile)来说,它花费的时间要多得多,比起将本地存储库放在WSL文件系统中时要多一倍以上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接