我写过这个项目,在config/
文件夹中有一堆配置文件,这些是运行所必需的:
https://github.com/danyaljj/jwnl-prime/
代码在我的计算机和CI mvn test
下工作正常。
但是在打包并将其作为maven依赖项添加到另一个项目之后,函数调用会给我错误
java.io.FileNotFoundException: config/file_properties.xml (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at net.didion.jwnl.TestDefaults.getInputStream(TestDefaults.java:63)
at net.didion.jwnl.JWNL.initialize(JWNL.java:92)
我知道为什么会出现这种奇怪的行为?
更新: 在解压缩jar文件之后,事实证明配置文件不包含在jar中:
但仍然遇到同样的错误:config/file_properties.xml (No such file or directory)
答案 0 :(得分:3)
如果项目结构不是标准格式,则还需要更新pom.xml。如果您需要包含构建配置,则需要在构建部分中添加该配置,如
参考链接enter link description here
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.4</version>
</extension>
</extensions>
<resources>
<resource>
<directory>config</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
</build>
&#13;
答案 1 :(得分:1)
首先,验证配置文件是否实际打包到jar中。我会在存档查看器中查看它或解压缩它,看看它里面有什么。
其次,您不能使用标准文件打开方法直接从jar加载文件。你必须使用像
这样的东西Class.getResourceAsStream()
请点击此处获取更多建议: How do I access a config file inside the jar?