如何将空测试文件夹同步至Jenkins工作区?
解决Jenkins中Maven Spring Boot项目空文件夹未同步的问题
核心原因
Git本身不会追踪空文件夹,所以如果你的空文件夹里没有任何文件,它不会被纳入版本控制,Jenkins拉取代码时自然也就不会同步这个目录,导致测试找不到路径失败。
可行解决方案
1. 添加占位文件(最推荐,行业通用做法)
在需要保留的空文件夹下创建一个名为.gitkeep的文件,内容可以为空,也可以加一行注释(比如# 用于保留空文件夹,避免Git忽略)。然后将这个文件提交到Git仓库。
这样Git会因为这个文件的存在而追踪整个文件夹,Jenkins拉取代码时就会同步该目录,测试就能正常找到路径了。
2. 通过Maven插件在构建时生成空文件夹
如果不想添加占位文件,可以在pom.xml中配置maven-resources-plugin,让它在构建阶段自动创建所需的空文件夹:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>create-test-empty-directory</id> <phase>process-test-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.testOutputDirectory}/你的空文件夹名称</outputDirectory> <resources> <resource> <directory>src/test/resources/你的空文件夹名称</directory> <includes> <include>**/*</include> </includes> <filtering>false</filtering> </resource> </resources> <mkdirs>true</mkdirs> <overwrite>true</overwrite> </configuration> </execution> </executions> </plugin> </plugins> </build>
这个配置会在process-test-resources阶段(测试资源处理阶段)自动创建目标空文件夹,不管原目录是否为空。
3. 检查Jenkins Git拉取配置
确认Jenkins的Git插件没有额外配置忽略空文件夹:
- 进入Jenkins项目的配置页面
- 找到「Git」源码管理模块
- 查看「Additional Behaviours」中是否存在忽略空文件夹的规则,如有则移除该配置
内容的提问来源于stack exchange,提问作者BFR
相关产品推荐
相关产品推荐

