java - 使用 maven 构建后未找到 src/main/resources 中的资源

标签 java maven maven-2

您好,我在 java 应用程序中使用 src/main/resources 中的配置文件。我在类里面读它是这样的:

new BufferedReader(new FileReader(new File("src/main/resources/config.txt")));

所以现在我正在使用 mvn assembly: assembly 通过 Maven 构建它。这是我的 pom.xml 中的部分内容:

<plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <finalName>TestSuite</finalName>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.some.package.Test</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

因此,当我运行我的应用程序时,我收到此错误:

src\main\resources\config.txt (The system cannot find the path specified)

但是当我右键单击组装好的 jar 时,我可以看到它在里面,有人知道我做错了什么吗?

最佳答案

来自 src/main/resources 的资源将被放入类路径的根目录中,因此您需要按以下方式获取资源:

new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/config.txt")));

您可以通过查看 maven 生成的 JAR/WAR 文件进行验证,因为您会在存档的根目录中找到 config.txt

关于java - 使用 maven 构建后未找到 src/main/resources 中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55990694/

相关文章:

java - 在 pom.xml 中配置 Maven 插件两次

java - 获取有关 Maven 依赖项的信息

java - 向简单的 Maven 项目添加样式

java - 如何构建动态域模型 Java Web 应用程序

java - 每两个星期一/星期五生成 Quartz Cron 表达式

java - 需要有关在 JTextPane 上绘图的帮助

maven - Maven依赖的内部属性

java - Log4j2 - 配置 RolloverStrategy 以删除旧日志文件

java - 如何在一个 Maven 配置文件和另一个配置文件之间切换?

java - 启用第三方组件的日志记录