Maven的清洁在Linux上流浪共享驱动器出现故障(Maven Clean Fails on Li

2019-10-19 21:40发布

利用流浪汉,我git clone倒是我的Java应用程序到c:/shared 。 在我Vagrantfile ,我指定我的主机的c:/shared将映射到/home/vagrant/myapp我的虚拟机。

当我运行mvn clean compile从VM内,我就遇到了这个错误:

core/myapp/target/classes/com/myapp/...
        at org.apache.maven.plugin.clean.CleanMojo.execute(CleanMojo.java:215)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 19 more
Caused by: java.io.IOException: Failed to delete core/myapp/target/classes/com/myapp/...
        at org.apache.maven.plugin.clean.Cleaner.delete(Cleaner.java:249)
        at org.apache.maven.plugin.clean.Cleaner.delete(Cleaner.java:191)
        at org.apache.maven.plugin.clean.Cleaner.delete(Cleaner.java:158)

然而,Maven构建成功,我的Windows(主机)的机器上。

运行ls给出的特权显示为问号奇数输出(?):

[vagrant-centos65 parent]$ ls -lrot target/...
ls: cannot access ...
?????????? ? ? ?            ? $Class$$doMethod$1$1$$anonfun$apply$2.class

我正在为用户kevin ,其中作为/home/vagrant/myapp所拥有vagrant 。 然而,大多数,如果不是全部myapp的目录有敞开( 766777 )的权利。

在过去,我已经成功地在主机和客户之间共享的目录编制上的来宾虚拟机。

我正在使用:

vagrant - 1.3.5
Maven - 3.2.1
VirtualBox - 4.3.8

另外,我观察到,这种特定的文件夹( C:没有被每这个索引交 。

编辑我与托管文件时,即使看到了同样的错误SMB 。

为什么会生成主机上的成功,而不是客人吗?

Answer 1:

也有类似的问题,但主要是因为我是哑巴,不得不用的Eclipse在共享区域项目ABD“自动生成”选择的主机上运行。

所以每次行家删除目标文件时,Eclipse会重新创建它...



Answer 2:

在编译过程中,Maven的斯卡拉编译源文件到CLASS文件。

一个长度.class文件为161。 路径的长度,以该文件为〜100。

161 +〜90 =〜261#超过Windows上的255的路径长度

为了解决这个问题,@monkjack告诉我如何限制生成的类文件的75个字符的长度- https://stackoverflow.com/a/23138361/409976 。



文章来源: Maven Clean Fails on Linux Vagrant Shared Drive