我有一个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”继续它,问题就解决了......(从那个悬挂状态继续构建)
答案 0 :(得分:3)
.nfsXXXX文件归因于NFS客户端所做的所谓“愚蠢的重命名”,以便在无状态NFSv3协议之上模拟最后关闭语义上的POSIX删除。
换句话说,它们在删除文件时出现,但某些进程仍然保持文件打开。当该进程退出时,.nfsXXXX文件将被删除为真实。
答案 1 :(得分:2)
尝试fuser {filename}
使用fuser查找锁定文件的进程。在进程停止后,nfs文件应该自行消失。
您可能必须终止该进程,但我怀疑它是您的maven构建本身?
答案 2 :(得分:1)
通过将构建目录挂载到本地磁盘来“修复”它,并且只将maven存储库放在NFS挂载上(因为占用了大部分空间的那个)。