Java资源使用远离目录树的文件
我有一个新手Java问题
我必须为我们在SQL Server中使用的一些存储过程做一套J/DBUnit测试。这些测试使用了几个子目录中的一些XML文件,这些子目录最初与我的Java项目放在同一个目录中
不管怎样,在检查这些测试后,我们的SVN经理希望保持。java文件位于树的一部分,资源(如XML文件和必需的JAR)位于树的另一部分
所以,我的测试最初引用的XML文件具有相对路径,但现在不起作用
我的问题是:
- 我可以通过类路径使用包含XML文件的目录吗(我希望如此)李>
- 假设这是可行的,我如何在代码中引用以这种方式包含的文件李>
- 如果我不应该为此使用类路径,我愿意接受其他解决方案李>
# 1 楼答案
您可以在不更改类路径的情况下执行此操作。其想法是将资源文件存储在一个单独的目录中,但在运行构建过程时将它们复制到类路径中的一个目录中
以下是一个配置示例:
在构建脚本中,复制两个。将java文件和资源文件(.xml)添加到类路径中的目录中,例如:
测试代码针对目标目录运行。目标目录没有签入到SVN,这会让你的SVN管理员满意,而且你不必对代码进行更改
# 2 楼答案
使用类路径没有问题,标准maven项目布局如下所示:
编译器将src/main/java编译为target/classes,src/main/resources的资源被复制到target/classes文件夹,与测试类似。如果测试有一个包含类和测试类的类路径,那么所有测试都可以正常工作
你的项目布局如何,构建如何