当前位置: 首页 > 知识库问答 >
问题:

从外部目录maven intellij的文件

严易安
2023-03-14

我在Intellij中运行SpringBoot应用程序时遇到一些问题。@springboot应用程序位于子模块中

└── conf
   └── xml
      └──beans.xml
└── source
   └── core
       └── common
        └── MainApplication.java --> @SpringBootApplication
   └── config
   └── pom.xml --> parent

MainApplication.java有注释@重要资源("classpath:/beans.xml")

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.xxx.yyy"})
@EnableCaching
@ImportResource("classpath:/beans.xml")
public class ServiceApplication extends SpringBootServletInitializer implements WebApplicationInitializer // extends SpringBootServletInitializer implements WebApplicationInitializer
{  

“配置”模块有pom.xml,没有java文件。它只生成资源

<artifactId>config</artifactId>
    <properties>
        <environment>DEV</environment>
        <country>ID</country>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <build>
        <filters>
            <filter>../../build/server.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>../../conf</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>**/**/log4j2.xml</exclude>
                </excludes>
                <targetPath>../../../../deploy/conf</targetPath>
            </resource>
...

我试图在Intellij上运行配置,但它为文件bean生成错误FileNotFoundException。xml。这个配置已经在其他队友的Eclipse上运行。我想在Intellij上运行它。我已经在项目结构中导入了配置模块,conf文件夹已经标记为Resource Root。为什么它仍然不起作用?或者,如果我必须将更改附加到现有的java文件或pom中,也可以。只要应用程序能找到进入资源文件夹的路径。我不需要构建war并运行它,但我只想作为SpringBoot应用程序运行

谢谢你。任何帮助都将不胜感激。

共有3个答案

王佐
2023-03-14

从@ImportResource(“classpath:/beans.xml”)中删除前导/。

>

  • 它应该像:@重要资源("classpath:beans.xml")

    检查源文件是否为bean。xml是否已复制到构建目录:Path:/target/classess/beans。xml

    如果你没有放豆子。xml,然后提供实际路径或将其放在资源文件夹中

  • 洪凯定
    2023-03-14

    首先:从@ImportResource(“classpath:/beans.xml”)中删除前导的/

    这应该是:

    @ImportResource("classpath:beans.xml")
    

    第二:在处理资源时,检查您的beans.xml是否被复制到项目构建目录中。

    bean的默认位置。xml将是target/classes/bean。xml

    司徒俊良
    2023-03-14

    我会说这不是一个标准的java项目结构......

    归档-

    如你所见,你可以编辑路径到源,资源,测试...文件夹或添加更多。

    也许这会有帮助...

     类似资料:
    • 我有一个shell脚本文件,我想从java运行。我的java工作空间目录与脚本的目录不同。 我收到此错误: 我在谷歌上搜索了一下,每一个解决方案都表明我在做正确的事情。 我试图把脚本文件放在src和Java项目的bin中,但它仍然说没有这样的文件或目录。 我做错了什么? 谢谢

    • 如果文件位置是资源文件夹,下面的代码工作正常,但是当文件位置在项目目录之外时,比如(c:\file.json),它就失败了。我们如何从项目目录之外加载文件。

    • 问题内容: 为了安全起见,我将文件和文件夹的集合移到apache服务器上的Web根之外,然后我将为它们提供动态服务。这似乎比2个替代方案要好: 让他们可以访问网络,只需创建一个php登录页面即可,该页面会附加到每个文件中。问题是它们不是全部的php文件,而且我不能将php登录文件添加到pdf,图像等文件中。 使他们可以访问网络,并使用HTTP身份验证来限制对整个目录的访问。但这会带来一些问题,包括

    • 从手册: 类路径/配置包 类路径根 它两次提到当前目录,但这并不意味着什么: 我需要为文件找到正确的外部位置,这样我就不必在应用程序中构建数据库凭据。 指南中说,将放在当前目录中会起作用,我找到了要将其放入的确切当前目录,但它仍然不起作用,我可以通过以下命令的输出来验证这一点:它是它只通过嵌入的属性文件输出正确的值。

    • 对于缓存目录中的文件,我可以将其添加到xml中以设置FileProvider 但是如果我将文件存储在外部缓存Dir中,我就无法获得外部缓存路径标记或类似的东西来设置文件提供商。而且 也没有帮助。 这是我的清单文件: 这是xml/file_paths文件: 这是我的代码: 以下是错误信息:

    • 我试图在根目录外的文件夹中保存一个文件,然后读取它的内容。 例如,我的工作目录是/var/www/html/project_folder,我想将文件保存在/var/www/new_folder中 我使用的是Laravel5.2,所以我的根路径是/var/www/html/project\u folder/public 我已授予新文件夹的所有权限。我尝试了$\u SERVER['DOCUMENT\u