【问题标题】:Maven Clean Fails on Linux Vagrant Shared DriveMaven Clean 在 Linux Vagrant 共享驱动器上失败
【发布时间】:2014-04-15 16:08:49
【问题描述】:

使用 vagrant,我 git clone'd 我的 java 应用程序到 c:/shared。在我的Vagrantfile 中,我指定主机的c:/shared 将映射到我的虚拟机上的/home/vagrant/myapp

当我在虚拟机中运行mvn clean compile 时,我遇到了这个错误:

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/myappvagrant 所有。但是,myapp 的大多数(如果不是全部)目录都拥有完全开放的(766777)权限。

过去,我在来宾虚拟机上成功编译,位于主机和来宾共享的目录中。

我正在使用:

vagrant - 1.3.5
Maven - 3.2.1
VirtualBox - 4.3.8

此外,我观察到此特定文件夹 (C:) 未根据此 post 编入索引。

EDIT即使在使用smb 托管文件时,我也会看到相同的错误。

为什么构建会在主机上成功,而不是在来宾上?

【问题讨论】:

  • 哪个流浪版本?哪个同步类型的文件夹?
  • 流浪者 1.3.5。我从未指定同步。我在主机上使用 Windows

标签: maven virtual-machine virtualbox vagrant


【解决方案1】:

有一个类似的问题,但主要是因为我很笨,并且在主机上运行了 Eclipse,并且在共享区域 abd 中选择了“自动构建”的项目。

所以每次maven删除一个目标文件,eclipse都会重新创建它...

【讨论】:

    【解决方案2】:

    在编译期间,Maven 将 Scala 源文件编译成 CLASS 文件。

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

    161 + ~90 = ~261 # 在 Windows 上超过 255 路径长度

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

    【讨论】:

      猜你喜欢
      • 2019-11-14
      • 2017-10-19
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      相关资源
      最近更新 更多