如何优化Maven项目中提取ZIP依赖中JSON文件的方案?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1428个文字,预计阅读时间需要6分钟。
在 中,请替换 和 标签内的内容,直接输出结果。
考虑一个典型的场景:您的项目依赖于一个由其他团队维护的Maven ZIP类型构件。这个ZIP文件内部结构如下:myFolder/myFile.json。您已在pom.xml中正确声明了此ZIP依赖:
<dependency> <groupId>org.foo</groupId> <artifactId>myComponent</artifactId> <version>1.0</version> <type>zip</type> <scope>compile</scope> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
然而,当您尝试使用getClass().getResourceAsStream("/myFolder/myFile.json")来访问ZIP文件内部的myFile.json时,却发现它返回null。这是因为getResourceAsStream()通常期望资源直接位于类路径的根目录或其子目录中,而不是嵌套在另一个归档文件(ZIP)内部。虽然ZIP文件本身作为依赖被添加到类路径,但其内部的内容并未被JVM的默认资源加载器直接暴露。
本文共计1428个文字,预计阅读时间需要6分钟。
在 中,请替换 和 标签内的内容,直接输出结果。
考虑一个典型的场景:您的项目依赖于一个由其他团队维护的Maven ZIP类型构件。这个ZIP文件内部结构如下:myFolder/myFile.json。您已在pom.xml中正确声明了此ZIP依赖:
<dependency> <groupId>org.foo</groupId> <artifactId>myComponent</artifactId> <version>1.0</version> <type>zip</type> <scope>compile</scope> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
然而,当您尝试使用getClass().getResourceAsStream("/myFolder/myFile.json")来访问ZIP文件内部的myFile.json时,却发现它返回null。这是因为getResourceAsStream()通常期望资源直接位于类路径的根目录或其子目录中,而不是嵌套在另一个归档文件(ZIP)内部。虽然ZIP文件本身作为依赖被添加到类路径,但其内部的内容并未被JVM的默认资源加载器直接暴露。

