java - 从不同的项目访问属性文件

标签 java properties maven-plugin-development

我正在开发一个自定义的 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}

最佳答案

Properties allProperties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
allProperties.load(loader.getResourceAsStream("/tokens.properties"));

你很接近。那确实是正确的类加载器,但是错误的路径。删除前导斜杠。

allProperties.load(loader.getResourceAsStream("tokens.properties"));

关于java - 从不同的项目访问属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763792/

相关文章:

python - 在 __init__ 中使用 python @property,给出属性错误

java - 如何像在 Pom 中一样从 Java 方法获取 Maven 项目版本

java - 从属性文件访问 Maven Pom 变量

Java hibernate如何使用select...where id in()

java - 多线程共享一个套接字

java - Spring - 用新的属性文件值替换 bean 属性值

java - 如何在 Android 中恢复最近暂停的 Activity ?

java - 如何在 Hibernate 和/或分布式环境中排序对象?

c++ - 使用 boost 属性树创建多节 xml