Hola Estoy usando un archivo de configuración de src/main/resources en mi aplicación java. Estoy leyendo en mi clase como esta:Recurso de src/main/resources no encontrado después de construir con maven
new BufferedReader(new FileReader(new File("src/main/resources/config.txt")));
Así que ahora estoy construyendo con esta experta en el uso de mvn assembly:assembly
. Aquí está el bit para que en mi pom.xml:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<finalName>TestSuite</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.some.package.Test</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Así que cuando corro mi aplicación me sale este error:
src\main\resources\config.txt (The system cannot find the path specified)
Pero cuando hago clic derecho en mi frasco ensamblado puedo verlo adentro, ¿alguien sabe lo que estoy haciendo mal?
¿Podría agregar un pequeño texto a su respuesta explicando qué hizo Maven que causa esta diferencia? Eso podría resultar de gran ayuda. Gracias. – theJollySin
Como se dijo, Maven coloca recursos de 'src/main/resources' en la raíz del classpath, por lo que no hay un directorio' src/main/resources' en el archivo JAR, del mismo modo, los archivos '.class' no están en un directorio llamado 'src/main/java'. ¿Tiene sentido? – beny23
Si se encuentra en un contexto estático, también puede usar "Thread.currentThread(). GetContextClassLoader()" en lugar de "getClass()". –