Java资源-在目录树中使用远离的文件
我有一个新手Java问题。 我必须为我们在SQLServer中使用的一些存储过程做一套J/DBUnit测试。这些测试使用了几个子目录中的一些XML文件,这些子目录最初与我的Java项目放在同一个目录中 无论如何,在签入这些测试后,我们的SVN经理希望将.java文件保存在树的一部分,将资源(如XML文件和必需的JAR)保存在树的另一部分 因此,我的测试最初引用的XML文件具有相对路径,但现在不起作用 我的问题是:Java资源-在目录树中使用远离的文件,java,resources,classpath,Java,Resources,Classpath,我有一个新手Java问题。 我必须为我们在SQLServer中使用的一些存储过程做一套J/DBUnit测试。这些测试使用了几个子目录中的一些XML文件,这些子目录最初与我的Java项目放在同一个目录中 无论如何,在签入这些测试后,我们的SVN经理希望将.java文件保存在树的一部分,将资源(如XML文件和必需的JAR)保存在树的另一部分 因此,我的测试最初引用的XML文件具有相对路径,但现在不起作用 我的问题是: 我可以通过类路径使包含XML文件的目录可用吗(我希望如此) 假设这样做有效,我如何
忘了calsspath吧。为测试提供一个参数/配置,该参数/配置为XML文件的相对路径定义根目录。忘记CalsPath。为测试提供一个参数/配置,该参数/配置为XML文件的相对路径定义根目录。不,在这个实例中不应该使用CLASSPATH,因为Java使用它。但是,您可以使用类似的方法,从环境变量或配置文件加载一个值,该值指示存储XML文件的目录。否,在这个实例中不应该使用CLASSPATH,因为Java使用它。但是,您可以使用类似的方法,从环境变量或配置文件加载一个值,该值指示XML文件存储的目录。使用类路径没有问题,标准maven项目布局如下所示:
- src
- 主要
- 爪哇
- 资源
- 试验
- 爪哇
- 资源
- 主要
- 目标
- 班级
- 测试班
项目布局如何,构建如何?使用类路径没有问题,标准maven项目布局如下所示:
- src
- 主要
- 爪哇
- 资源
- 试验
- 爪哇
- 资源
- 主要
- 目标
- 班级
- 测试班
您的项目布局如何,构建如何?您可以在不更改类路径的情况下完成此操作。其思想是将资源文件存储在单独的目录中,但在运行构建过程时将它们复制到类路径中的目录中 以下是一个配置示例:
source Directory is ${basedir}/src/main/java
resource directory is ${basedir}/src/main/resources
在构建脚本中,将.java文件和资源文件(.xml)复制到类路径中的目录,例如:
${basedir}/target/classes
测试代码针对目标目录运行。目标目录没有签入到SVN,这使您的SVN管理员感到高兴,并且您不必更改代码。您可以在不更改类路径的情况下执行此操作。其思想是将资源文件存储在单独的目录中,但在运行构建过程时将它们复制到类路径中的目录中 以下是一个配置示例:
source Directory is ${basedir}/src/main/java
resource directory is ${basedir}/src/main/resources
在构建脚本中,将.java文件和资源文件(.xml)复制到类路径中的目录,例如:
${basedir}/target/classes
测试代码针对目标目录运行。目标目录没有签入到SVN,这使您的SVN管理员感到高兴,而且您不必对代码进行更改。好的,它只是一个小项目,基本上位于一个文件夹中,但我要移动到的布局是Maven,因此这很好地回答了这个问题。我只需要阅读Maven,我想我会更好地理解它是如何工作的。好吧,这只是一个小项目,基本上是在一个文件夹中,但我要移动到的布局是Maven,所以这很好地回答了这个问题。我只需要阅读Maven,就可以更好地理解它是如何工作的,我想这是可行的,但如果你有时用ant/Maven开始测试,有时用Eclipse或Idea这样的IDE开始测试,那就很难处理了。没有人喜欢在运行不同的测试之前准备一个测试设置。这是可行的,但是如果您有时使用ant/maven启动测试,有时使用Eclipse或Idea之类的IDE启动测试,那么处理起来就很困难。没有人喜欢在运行不同的测试之前准备测试设置。