Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在编译阶段无法检索自定义maven插件中的资源_Java_Maven_Resources_Classpath_Maven Plugin - Fatal编程技术网

Java 在编译阶段无法检索自定义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

我已经创建了一个在编译阶段运行的自定义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>
这会在执行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();