maven - 构建时奇怪的nfs问题

时间:2010-07-07 12:03:21

标签: java maven-2

我有一个maven项目,可以在本地构建OK(windows)。 当我尝试在我们的svn服务器(linux)上构建它时,它会在运行测试时挂起。

我看到一个创建的tmp文件:

  

nfs0000000001e9c8a900000017

在我的测试模块的以下目录中:

  

/ PROJECT_NAME测试/目标/万无一失的报告

pom中的配置是:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <dependencies/>
            <configuration>
                <systemProperties>
                    <property>
                        <name>java.io.tmpdir</name>
                        <value>${basedir}/target/tmp</value>
                    </property>
                </systemProperties>
                <skip>true</skip>
                <suiteXmlFiles>
                    <suiteXmlFile>
                        src/test/conf/testng.xml
                    </suiteXmlFile>
                </suiteXmlFiles>
                <childDelegation>true</childDelegation>
                <argLine>-Dsun.lang.ClassLoader.allowArraySyntax=true</argLine>
            </configuration>
            <executions>
                <execution>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>false</skip>
                    </configuration>
                </execution>
            </executions>
        </plugin>

请注意完整结帐并在/ tmp文件夹中构建效果很好,但在

  

的/ var /建立/建造/ PROJECT_NAME /向上docstore / PROJECT_NAME /中继/ PROJECT_NAME测试/目标/万无一失的报告

失败。

我觉得.nfs tmp文件可能会出现问题...但是看不到任何解决方法。

你能给我一个提示吗?

感谢。

更新:似乎真的很奇怪的是,如果我按CTRL + Z在后台发送进程并输入“fg”继续它,问题就解决了......(从那个悬挂状态继续构建)

3 个答案:

答案 0 :(得分:3)

.nfsXXXX文件归因于NFS客户端所做的所谓“愚蠢的重命名”,以便在无状态NFSv3协议之上模拟最后关闭语义上的POSIX删除。

换句话说,它们在删除文件时出现,但某些进程仍然保持文件打开。当该进程退出时,.nfsXXXX文件将被删除为真实。

答案 1 :(得分:2)

尝试fuser {filename}

使用fuser查找锁定文件的进程。在进程停止后,nfs文件应该自行消失。

您可能必须终止该进程,但我怀疑它是您的maven构建本身?

答案 2 :(得分:1)

通过将构建目录挂载到本地磁盘来“修复”它,并且只将maven存储库放在NFS挂载上(因为占用了大部分空间的那个)。