java - 是否有一种可移植的方法来获取 Maven 项目中资源的路径?

标签 java maven-2 maven

我的一个单元测试是由测试数据驱动的,存储在 src/test/resources/testData.txt 中。由于Maven会复制src/test/resources的内容至target/test-classes/它位于类路径上,我可以方便地从类路径中读取该文件,而无需关心其绝对文件名。到目前为止,一切顺利。

现在我正在编写一些代码,这些代码将使用从远程系统获取的数据来更新该文件。该代码将很少运行,并且不会作为构建的一部分。更新后的文件将提交到源存储库。为了附加到文件,我需要知道 src/test/resources 中原始文件的路径。 (附加到 target/test-classes/ 中的那个显然不起作用)。

如何以可移植的方式确定该路径?我不想硬编码 src/test/resources/ ,因为这些目录名称实际上可能会改变。另外,如果使用当前工作目录而不是我的项目基目录执行,这将会中断。

有什么想法吗?

最佳答案

最好的方法可能是使用 ${project.basedir}/src/test/resources。测试资源目录不太可能更改,并且无论您的工作目录如何,它都会安全地解析为正确的路径。尝试通过属性引用测试资源目录是有问题的,因为可能并且经常定义多个测试资源。您怎么知道该选择哪一个?

关于java - 是否有一种可移植的方法来获取 Maven 项目中资源的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875891/

相关文章:

java.sql.SQLRecoverableException : The Network Adapter could not establish the connection

java - 更改添加到堆栈的变量的值而不更改堆栈?

email - hudson 电子邮件太多

maven-2 - Raml 验证器在 javax.xml.validation.SchemaFactory.newSchema 中引发错误

java - 运行 Maven jar 文件时无法找到或加载主类

maven - 在 CodeBuild maven 作业上使用适当的 ECS 凭据

java - 如何从源代码(JDK 中的 src.zip)构建 java JRE?

java - 需要帮助查找错误

maven-2 - Ant 继承 Maven 属性

java - Graphql Java 7 兼容性