maven-assembly-plugin保存锁定文件

时间:2011-11-25 10:58:57

标签: java maven maven-assembly-plugin

我正在使用maven-assembly-plugin为一些数据库脚本生成一个zip文件。我有一个间歇性的问题,如果我的构建因任何原因失败,当我来重建它时,经常(但不总是)在尝试删除目标目录时立即失败。原因是它在那里复制的zip程序集文件(由maven-assembly-plugin使用)被锁定。

如果我反复尝试构建,或者在失败的构建和重建之间留出足够长的时间,则最终会锁定锁定并且构建正常进行。

这证明非常令人沮丧 - 任何想法可能是什么问题?我使用的是Windows XP专业版。

我的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>

谢谢!

1 个答案:

答案 0 :(得分:0)

使用&#39;进程资源管理器&#39;我可以看到,即使maven构建失败,仍有一个java进程仍保留在此文件句柄中。这个java进程实际上是由eclipse拥有的,因为我的构建是从命令行运行的。我怀疑eclipse已经在工作区中看到了文件更改并决定更新其项目。在eclipse完成更新后,句柄被删除,我的构建能够继续而没有问题。

进一步看,我可以看到汇编文件正在main /目录下构建,这将证实为什么eclipse会涉及到。我会移动它!