получить значение null от getResourceAsStream при использовании Travis-CI и Gradle - PullRequest
0 голосов
/ 19 мая 2019

В моем проекте 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)
...