在我的gradle项目中,它有一个资源目录。使用静态getResourceAsStream,我从该目录访问文件。这在Eclipse中或在本地从命令行运行gradle时有效。但是在Travis-CI中运行时,找不到该文件。
我尝试使用“ Thread.currentThread()。getContextClassLoader()。getResourceAsStream”和“ LenPEGUtil.class.getClassLoader()。getResourceAsStream”,但是每个方法要么使其在本地停止工作,要么在Travis中失败-CI。
带有源集的build.gradle
sourceSets{
main{
java {
srcDir 'src'
}
resources {
srcDir 'resources'
}
}
test{
java{
srcDir 'test'
}
resources{
srcDir 'testResources'
}
}
}
读取文件的Java代码:
private static BufferedImage lenna;
static {
try {
InputStream lennaInputStream = LenPEGUtil.class.getResourceAsStream("/lenna.png");
setLenna(ImageIO.read(lennaInputStream));
} catch (Exception e) {
e.printStackTrace();
}
}
在本地可行。但是在Travis-CI中,我得到了一个例外:
jjcard.jlenpeg.lenPEGWriterTest STANDARD_ERROR
java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at jjcard.jlenpeg.LenPEGUtil.<clinit>(LenPEGUtil.java:96)
at jjcard.jlenpeg.lenPEGWriterTest.setup(lenPEGWriterTest.java:23)