【发布时间】:2013-07-21 11:37:31
【问题描述】:
有一个 maven 项目 A。一旦我执行 mvn clean install,项目就会构建并且 jar 在我的本地存储库中可用,即 c:\repository\com\stackoverflow\A\A.jar
A.jar 包含几个类和这些类使用的 xml 文件
从另一个 maven 项目中,我正在调用使用一个 XML 文件的类中的一种方法。
代码是:
public File xmlFilder(String xmlAbsolutePath) {
File f = new File(xmlAbsolutePath);
return f;
}
第二个项目位于我的 D 盘。在获取绝对路径时,我得到的是 \com\stackoverflow\A\res\p.xml 这是正确的绝对路径。
但如果我在第 3 行添加以下代码,我得到如下:
public File xmlFilder(String xmlAbsolutePath) {
File f = new File(xmlAbsolutePath);
System.out.println("AbsolutePath----"+f.getAbsolutePath()); ---> D:\com\stackoverflow\A\res\p.xml
System.out.println("getPath------------"+f.getPath()); ---> \com\stackoverflow\A\res\p.xml
System.out.println("exists--------------"+f.exists()); ----> false
return f;
}
谁能告诉我哪里出错了。为什么它没有从 C 驱动器中存在的存储库中选择 xml。
【问题讨论】:
-
不清楚你的xml文件在哪里。您是尝试从 jar 还是从文件系统加载它?
-
xml 文件存在于 A.jar 的资源文件夹中。该 jar 存在于 C 驱动器中的存储库中。请注意,我已经正确添加了依赖项,并且我能够正确地从项目 B 访问 A.jar 中存在的方法。