Java 在编译阶段无法检索自定义maven插件中的资源
我已经创建了一个在编译阶段运行的自定义maven插件。插件尝试在类路径上查找资源,但找不到 信息技术 插件:Java 在编译阶段无法检索自定义maven插件中的资源,java,maven,resources,classpath,maven-plugin,Java,Maven,Resources,Classpath,Maven Plugin,我已经创建了一个在编译阶段运行的自定义maven插件。插件尝试在类路径上查找资源,但找不到 信息技术 插件: <plugin> <groupId>com.mygroup</groupId> <artifactId>myplugin-maven-plugin</artifactId> <version>0.0.1-SNAPSHOT</version> <executions&g
<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>
这会在执行mvn clean时导致NullPointerException
安装,尝试将myFile.txt放入项目的根目录src中
文件夹或src/main/resources文件夹。每次getResource返回时
无效的我还尝试使用:
InputStream is = Thread.currentThread().getContextClassLoader().getResource("myFile.txt").openStream();
也可以使用getResourceAsStream,但没有任何帮助
这与编译阶段有关吗?我想
让插件根据输入文件中的属性生成代码
谢谢 我找到了解决办法。首先,我认为当不指定阶段时,问题就消失了,但如果不这样做,它将根本不会执行插件。
我的诀窍是简单地使用FileInputStream(“myFile.txt”),在项目根目录中包含myFile.txt 你搞错了。如果插件试图通过getResource()访问资源,它将在自己的jar中搜索,或者更准确地在插件类路径上搜索,而不是在正在构建的项目的类路径上搜索。看看源代码maven resources插件如何访问项目的路径…谢谢,但我在正在构建的项目中使用该插件,因此它在正确的类路径中查找。但是我发现了问题,我不应该在执行中指定编译阶段。因此,我会回答我自己的问题。
InputStream is = Thread.currentThread().getContextClassLoader().getResource("myFile.txt").openStream();