我正在开发一个自定义maven插件.我写的时候:
${project.version}
Run Code Online (Sandbox Code Playgroud)
进入我的pom文件我可以得到它的值但是如果我写入属性文件有一种方法:
project.version = ${project.version}
Run Code Online (Sandbox Code Playgroud)
这将正确设置project.version值,如何在我的Java代码中实现它?
PS:我没有在我的Mojo上使用注释,我不想在我的Java代码中使用变量,因为用户应该在属性文件中定义我的变量,并且我无法更改我的核心Java代码以便更改内容.
我正在开发一个自定义maven插件.当我读取自定义插件的属性文件时,一切都很好但是当我在不同项目中作为插件运行它如何获取项目属性文件时,它总是像往常一样查看自己的资源目录,因为:
我有这个:
Properties allProperties = new Properties();
allProperties.load(this.getClass().getResourceAsStream("/tokens.properties"));
Run Code Online (Sandbox Code Playgroud)
我试过了:
Properties allProperties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
allProperties.load(loader.getResourceAsStream("/tokens.properties"));
Run Code Online (Sandbox Code Playgroud)
但没有奏效.有任何想法吗?
PS:当我运行它时,它从插件属性文件中读取.我的属性文件在
src/main/resources
Run Code Online (Sandbox Code Playgroud)
我在我的poms上使用它:
<build>
...
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
Run Code Online (Sandbox Code Playgroud)
和我的属性文件:
project.version = ${project.version}
Run Code Online (Sandbox Code Playgroud)