我正在开发一个自定义maven插件。当我读取自定义插件的属性文件时,一切都很顺利但是当我在不同项目中作为插件运行它如何获取项目属性文件时,它总是像往常一样查看自己的资源目录,因为:
我有:
Properties allProperties = new Properties();
allProperties.load(this.getClass().getResourceAsStream("/tokens.properties"));
我试过了:
Properties allProperties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
allProperties.load(loader.getResourceAsStream("/tokens.properties"));
但没有奏效。有什么想法吗?
PS:当我运行它时,它会从插件属性文件中读取。我的属性文件在
下src/main/resources
我在我的poms上使用它:
<build>
...
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
和我的属性文件:
project.version = ${project.version}
答案 0 :(得分:5)
Properties allProperties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
allProperties.load(loader.getResourceAsStream("/tokens.properties"));
你很亲密。这确实是正确的类加载器,但路径错误。删除前导斜杠。
allProperties.load(loader.getResourceAsStream("tokens.properties"));