Mvn exec:java não encontra o arquivo properties

Tenho uma aplicação maven desktop que lê um arquivo de properties no diretorio resources:
Screenshot_2020-06-01_10-46-46

Quando executo método main pela IDE (InteliJ) o programa roda sem erros. Mas depois de empacotar e rodar com maven-exec-plugin:

mvn exec:java

Ele não acha o arquivo properties e dá NullPointerException

java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:297)
    at java.lang.Thread.run (Thread.java:834)
Caused by: java.lang.NullPointerException: inStream parameter is null
    at java.util.Objects.requireNonNull (Objects.java:246)
    at java.util.Properties.load (Properties.java:403)
    at com.imdb.resource.proxy.Configuration.<init> (Configuration.java:28)
    at com.imdb.service.httpclient.Connection.setUpConnection (Connection.java:43)
    at com.imdb.service.httpclient.Connection.<init> (Connection.java:26)
    at com.imdb.service.httpclient.Connection.getInstance (Connection.java:35)
    at com.imdb.resource.proxy.IMDB_ProxyServer.<init> (IMDB_ProxyServer.java:16)
    at com.imdb.resource.proxy.IMDB_ProxyServer.getInstance (IMDB_ProxyServer.java:25)
    at com.imdb.main.Main.main (Main.java:11)

Trecho do código que lê o arquivo properties:

InputStream is = ClassLoader.getSystemResourceAsStream(IMDB_CLIENT_PROPERTIES);
Properties properties = new Properties();
properties.load(is);   // NullPointerException quando roda via mvn exec:java

exec plugin no pom.xml:

<build>
    <plugins>
             <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>${exec.mainClass}</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

As classes de @Test também lêem o arquivo properties, mas na fase de testes não dá erro:
Screenshot_2020-06-01_10-54-50

mvn clean package

roda os testes e empacota sem erros, mas mvn exec:java dá NullException
Alguém sabe o qque está faltando pra rodar o exec com sucesso?

Qual o valor dessa constante?

é uma String, é o próprio nome do arquivo: "imdb-client.properties"

Sempre que preciso ler um recurso, faço assim:

InputStream is = this.getClass().getResourceAsStream("/imagem.png");

E nunca tive problemas assim. Tente testar dessa maneira. (repare que dessa forma, precisa da barra)

vlw Lucas!
troquei

InputStream is = ClassLoader.getSystemResourceAsStream(IMDB_CLIENT_PROPERTIES);

por

InputStream is = getClass().getClassLoader().getResourceAsStream(IMDB_CLIENT_PROPERTIES);

e funcionou!

muito obrigado!

1 curtida