gpt4 book ai didi

java - maven- assembly-plugin 锁定文件

转载 作者:行者123 更新时间:2023-12-01 05:35:26 24 4
gpt4 key购买 nike

我正在使用 maven-assemble-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>

谢谢!

最佳答案

使用“进程资源管理器”我可以看到,即使 Maven 构建失败,仍然有一个 Java 进程保留着该文件句柄。这个java进程实际上是由eclipse拥有的,这很有趣,因为我的构建是从命令行运行的。我怀疑 Eclipse 在工作区中发现了文件更改并决定更新其项目。 Eclipse 完成更新后,句柄被删除,我的构建能够继续,没有问题。

进一步观察,我可以看到程序集文件正在 main/目录下构建,这将证实为什么 eclipse 会参与其中。我这就搬!

关于java - maven- assembly-plugin 锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8268102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com