gpt4 book ai didi

java - 如何将静态文件复制到 IntelliJ Idea IDE 中的输出目录以进行 java 构建配置?

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:36 25 4
gpt4 key购买 nike

我正在用 java 创建客户端-服务器应用程序。我创建了三个模块:

  1. 客户端
  2. NetworkModels - 可序列化模型
  3. 服务器

客户端应该要求服务器解析xml文件,xml文件应该存储在服务器上。我在屏幕上设置了两种构建配置,一种用于客户端,一种用于服务器:

Build configurations

我已经添加了文件“Employees.xml”,如下一个屏幕所示,我预计该文件将复制到构建上的输出目录

Adding Employees.xml

但实际上,当运行构建时,文件没有复制到输出,我拥有的只是 jar: Only jar

我希望能够将 xml 文件放置在与 server.jar 相同的目录中,然后运行 ​​server.jar,请参阅此代码,该代码尝试从执行 jat 所在的同一位置读取文件:

private File getEmployeesXmlFile() throws Exception {
var classLoader = ClassLoader.getSystemClassLoader();
var pathToExecutedJar = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
var tempFile = new File(pathToExecutedJar);
var currentDirectory = tempFile.getParentFile().getAbsolutePath();
var pathToEmployeesXml = currentDirectory + "/employees.xml";
var employeesXmlFile = new File(pathToEmployeesXml);
if (employeesXmlFile == null) {
throw new Exception("Employees xml file not found at " + currentDirectory);
}

return employeesXmlFile;
}

xml 文件是 resources/employees.xml 路径上的撤消服务器模块,我已将此通配符添加到资源模式中,希望该文件将复制到服务器输出,但没有帮助:

Adding resource patterns

我想要的是在 IDE 中编辑文件并将其复制到构建时的输出。目前我已将“employees.xml”手动放置在 out 目录中。

最佳答案

I want this to be able to place a xml file in the same directory as server.jar

您说您想将其放置在 jar 附近,但您将其包含到 jar Artifact 中 - 因此它被包装在 jar 内。

IDE 将资源文件复制到输出目录:该文件必须放置在 resources 目录中。然后看到module's output directory IDE 将此文件放置在 build.gradle 上的位置。

要将其放置在 jar 附近,您可以在 Artifact 配置的后处理选项卡中配置一个 Ant 任务,以便在 IDE 构建 Artifact 后运行。

关于java - 如何将静态文件复制到 IntelliJ Idea IDE 中的输出目录以进行 java 构建配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com