如何在STS 3.9.2的Package Explorer中显示Maven排除的目录?
如何在STS中显示Maven编译插件排除的目录
当然可以显示这些目录!问题出在STS的Maven集成(也就是m2e插件)会自动识别maven-compiler-plugin里的<excludes>配置,把对应的目录标记为**派生资源(Derived Resource)**甚至直接从Java源路径中移除,这就是为什么你禁用视图过滤器也看不到它的原因。下面给你几个可行的解决方案:
1. 手动取消目录的「派生」标记(快速临时方案)
这个方法能立刻让目录显示,但执行Maven -> Update Project后会被重置:
- 先切换到STS的「Navigator」视图(因为Package Explorer可能默认隐藏派生资源)
- 找到你要显示的
somedir目录,右键点击它 → Properties → Resource - 取消勾选「Derived」选项,点击「Apply and Close」
- 切回「Package Explorer」,你就能看到这个目录了
2. 通过pom.xml配置永久保留目录(推荐)
在pom.xml中添加maven-eclipse-plugin的配置,明确告诉m2e要保留这个目录在源路径中,同时维持编译排除的规则:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>2.10</version> <configuration> <!-- 保留src/main/java作为源目录 --> <sources> <source>src/main/java</source> </sources> <!-- 只编译Java文件,但排除somedir下的所有Java文件 --> <sourceIncludes> <sourceInclude>**/*.java</sourceInclude> </sourceIncludes> <sourceExcludes> <sourceExclude>**/somedir/**/*.java</sourceExclude> </sourceExcludes> </configuration> </plugin>
配置完成后,执行mvn eclipse:eclipse命令,再回到STS中右键项目 → Refresh,这样somedir就会一直显示在Package Explorer里,同时不会被Maven编译,而且执行Maven -> Update Project也不会丢失设置。
3. 手动调整Java Build Path(临时方案)
如果不想修改pom.xml,也可以直接在STS中调整项目的构建路径:
- 右键项目 → Properties → Java Build Path → 切换到「Source」标签
- 点击「Add Folder...」,找到
somedir目录并勾选添加 - 选中刚添加的目录,点击右侧的「Edit...」,在弹出的窗口中设置「Exclusion patterns」为
**(确保该目录下的文件不会被编译) - 点击「Apply and Close」,目录就会在Package Explorer中显示了
这个方法同样会在Maven -> Update Project后被重置,适合临时查看目录的场景。
内容的提问来源于stack exchange,提问作者user3897528
相关产品推荐
相关产品推荐

