我正在使用maven-assembly-plugin为一些数据库脚本生成一个zip文件。我有一个间歇性的问题,如果我的构建由于任何原因而失败,当我尝试删除目标目录时,当我重新构建它时,经常(但不总是)立即失败。这样做的原因是它复制到那里的zip汇编文件(由maven- assembly -plugin使用)被锁定。
如果我反复尝试构建,或者在失败的构建和重建之间留下足够长的时间,锁最终会被释放,构建会照常进行。
这被证明是非常令人沮丧的--你知道问题可能是什么吗?我使用的是Windows XP Pro。
我的pom.xml代码片段是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptors>
<descriptor>src/main/sql/zip-assembly.xml</descriptor>
</descriptors>
<finalName>db-deployment</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-database-scripts</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
谢谢!
发布于 2011-11-28 19:59:01
使用'process explorer‘我可以看到,即使maven构建失败了,也有一个java进程仍然持有这个文件句柄。这个java进程实际上归eclipse所有,有趣的是我的构建是从命令行运行的。我怀疑eclipse已经看到工作区中的文件发生了更改,并决定更新其项目。在eclipse完成更新之后,句柄被删除,我的构建能够继续,没有问题。
再往下看,我可以看到程序集文件是在main/目录下构建的,这将确认为什么要涉及eclipse。我来搬!
https://stackoverflow.com/questions/8268102
复制相似问题