如何在Maven java Web应用程序中设置文件夹的相对路径?

时间:2016-01-22 15:28:46

标签: java eclipse maven tomcat web

我正在创建一个Maven Web应用程序,它在policy文件夹中存储了许多策略文件。我的源文件夹布局如下所示: enter image description here 我尝试将文件夹路径设置为policyLocation,如下所示:

try {
    // InputStream aa =
    // Accesscontrol.class.getClass().getResource(aa);
    String AbsolutePath = new File("/").getAbsolutePath();
    String policyLocation = (new File("."))
            .getCanonicalPath() + File.separator + "policy";
    System.setProperty(
            FileBasedPolicyFinderModule.POLICY_DIR_PROPERTY,
            policyLocation);
} catch (IOException e) {
    System.err.println("Can not locate policy repository");
}

但这是返回我的Eclipse文件夹。无论如何,我可以在java Web应用程序中获取不在Resource文件夹内的策略文件夹(因为它不能包含在Resource中)?

1 个答案:

答案 0 :(得分:0)

请记住,您的应用程序有多种运行方式:

  • 从IDE(Eclipse)中自动完成某些事情(如动态编译)
  • 使用 maven 构建Web应用程序时,是将其构建为 jar war ,还是 ear ?构建完成后,如何部署和运行它?

首先,您必须确保您的构建过程(maven)在可以引用的已知位置包含可分发的策略文件(例如,在 war 文件中)。然后,您可以修改 jar war 中的类路径,并确保您的策略文件位于类路径中。

通过这样的设置,您所要做的就是将其作为资源as per this answer

来解决