无法在编译阶段检索自定义maven插件中的资源

时间:2017-05-22 19:40:23

标签: java maven resources classpath maven-plugin

我创建了一个在编译阶段运行的自定义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,但没有任何帮助。

这与编译阶段有关吗?我想要 让插件根据输入文件中的属性生成代码。

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。首先我认为当没有指定阶段时问题就消失了,但是当不这样做时,它根本不会执行插件。 对我来说,诀窍就是在项目根目录中使用myFile.txt的FileInputStream(“myFile.txt”)。