Java 使用maven属性插件读取数据库信息
我试图读取数据库属性文件来初始化我的数据库,我使用的是maven。因此,我在pom.xml中指定了以下插件:Java 使用maven属性插件读取数据库信息,java,maven,intellij-idea,Java,Maven,Intellij Idea,我试图读取数据库属性文件来初始化我的数据库,我使用的是maven。因此,我在pom.xml中指定了以下插件: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.0-alpha-1</version>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/src/resources/database.properties</file>
<file>${basedir}/src/resources/databaseTest.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
这在IntelliJ中可以正常工作,但当我在maven中打包并运行它时,会出现以下错误:
线程“AWT-EventQueue-0”java.lang.RuntimeException中的异常:
加载数据库配置文件时出错
我想你可能误解了Maven属性插件的要点,我相信这里没有必要,但稍后会详细介绍 通过您发布的一点信息,我可以猜测它为什么不加载属性文件 捕获的
IOException
很可能是FileNotFoundException
。看起来您已将属性文件放置在src/resources
中,但根据,它们应该位于src/main/resources
中
将属性文件移到那里,它们现在应该正确地位于类路径上。此外,可能有一种更干净的方法来检索属性:
dbProperties.load(DatabaseSetting.class.getResourceAsStream(dbPropertiesName));
Maven属性插件
因为,看起来您只是试图从文件加载属性以在运行时使用,所以这里不需要Maven属性插件。按照配置,这个插件只会将属性加载到Maven构建上下文中,但它对在程序中加载属性没有任何帮助。您可以安全地从pom中删除插件声明。在
e
对象IOException
中的消息是什么?谢谢,我相信它现在已经修复了。我想我没有注意到maven默认资源必须在src/main/resources中。
dbProperties.load(DatabaseSetting.class.getResourceAsStream(dbPropertiesName));