我正在接管maven / spring应用程序,其中配置文件不在类路径上。即,配置文件夹由jar旁边的maven-assembly-plugin复制,以便在部署应用程序时简化配置。
我的问题是我需要这些配置文件从我的IDE(intelliJ)中运行这个应用程序,当然,Spring正在抱怨
Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
程序集采用“application-prod”或“application-test”.properties,具体取决于打包时使用的maven配置文件,并将其作为“application.properties”复制到/ config文件夹中,因此旁边的广口瓶中。
我的问题是: 在Intellij中运行应用程序时,我应该怎么做才能在类路径中提供这个“application.properties”文件(理想情况下取决于maven配置文件),而不会搞乱项目结构?
我想将属性文件作为参数提供给启动器可能是一个解决方案,但我不知道如何。
所以这是简化的项目结构:
|-- src/
| |-- main/
| | |-- assembly/
| | | |-- bin.xml
| |
| | |-- config/
| | | |-- images/
| | | |-- application-prod.properties
| | | |-- application-test.properties
| |
| | |-- java/...
| | | |-- gui/
| | | | |-- Application.java
| |
| | |-- resources/
| | | |-- context/
| | | | |-- context.xml
| |
| | | |-- fxml/
| | | | |-- welcome.fxml
| |
| | | |-- gui.properties
| |
|-- pom.xml
非常感谢。
答案 0 :(得分:0)
在没有多模块依赖关系的这种简单情况下,它可以成功。 您可以右键单击IntelliJ项目中的任何目录,选择“将目录标记为”,然后选择“源根”(或源资源根目录)。该目录文件夹将颜色从黄色变为蓝色(或将出现资源图标); IntelliJ将确保所有这些目录都在您的CLASSPATH中。
另请注意,您不应尝试在IDEA中向CP var明确添加smth。 Classpath在模块的Module Dependencies中配置。