如何将静态文件复制到IntellijIDE中用于java构建配置的输出目录?

如何将静态文件复制到IntellijIDE中用于java构建配置的输出目录?,java,intellij-idea,artifact,Java,Intellij Idea,Artifact,我正在用java创建客户机-服务器应用程序。我创建了三个模块: 客户 网络模型-可序列化模型 服务器 客户端应该要求服务器解析xml文件,xml文件应该存储在服务器上。我在屏幕上设置了两个构建配置,一个用于客户端,另一个用于服务器: 我添加了文件“Employees.xml”,就像在下一个屏幕上一样,我希望该文件会复制到构建时的输出目录中 但实际上,当运行build时,文件没有复制到输出,我只有jar: 我希望它能够将一个xml文件放在与server.jar相同的目录中,然后运行serve

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

  • 客户
  • 网络模型-可序列化模型
  • 服务器
  • 客户端应该要求服务器解析xml文件,xml文件应该存储在服务器上。我在屏幕上设置了两个构建配置,一个用于客户端,另一个用于服务器:

    我添加了文件“Employees.xml”,就像在下一个屏幕上一样,我希望该文件会复制到构建时的输出目录中

    但实际上,当运行build时,文件没有复制到输出,我只有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
    路径上的undo server module,我已将此通配符添加到资源模式中,希望该文件将复制到服务器输出,但这没有帮助:

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

    我希望它能够将xml文件放在与server.jar相同的目录中

    你说你想把它放在罐子附近,但是你把它放进了一个罐子工件中——所以它被包装在罐子里

    IDE要将资源文件复制到输出目录:文件必须放在
    resources
    目录中。然后查看IDE在构建中放置此文件的位置

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

    我希望它能够将xml文件放在与server.jar相同的目录中

    你说你想把它放在罐子附近,但是你把它放进了一个罐子工件中——所以它被包装在罐子里

    IDE要将资源文件复制到输出目录:文件必须放在
    resources
    目录中。然后查看IDE在构建中放置此文件的位置

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