我创建了一个在编译阶段运行的自定义maven插件。该插件尝试在类路径上查找资源,但无法找到 它。 插件:
<plugin>
<groupId>com.mygroup</groupId>
<artifactId>myplugin-maven-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
在我正在使用的插件代码中:
InputStream is = this.getClass().getClassLoader().getResource("myFile.txt").openStream();
执行mvn clean时会导致NullPointerException 安装,试图将myFile.txt放在项目的root,src中 文件夹或src / main / resources文件夹。每次getResource返回 空值。我也尝试过使用:
InputStream is = Thread.currentThread().getContextClassLoader().getResource("myFile.txt").openStream();
还有getResourceAsStream,但没有任何帮助。
这与编译阶段有关吗?我想要 让插件根据输入文件中的属性生成代码。
谢谢!
答案 0 :(得分:0)
我找到了解决方案。首先我认为当没有指定阶段时问题就消失了,但是当不这样做时,它根本不会执行插件。 对我来说,诀窍就是在项目根目录中使用myFile.txt的FileInputStream(“myFile.txt”)。