Pregunta

Quiero agregar algunas configuraciones al classpath (generado por Maven-Jar-Plugin), pero no las quiero dentro de un frasco, sino en una carpeta externa. De esa manera, podré editar configuraciones sin reempaquetarse. Encontré una solución Cómo agregar una entrada de classpath al ejecutar la aplicación con el complemento EXEC ¿Pero hay una solución menos complicada?

O tal vez me equivoque y es un mal patrón: almacenar configuraciones en el classpath pero fuera de un frasco? ¿Quizás sea mejor almacenar las configuraciones de aplicaciones en el directorio de inicio del usuario y agregarlas a la aplicación en tiempo de ejecución?

Por ejemplo, quiero permitir que el usuario final edite log4j.properties y traducciones.

Saludos,

¿Fue útil?

Solución

Sugeriría tener una ubicación predeterminada que busque las configuraciones de la aplicación (por ejemplo, el directorio de inicio del usuario, como sugirió), pero permita que el usuario proporcione una propiedad de Agrument/System anule esta ubicación. Asumir que mirar en la classpath no es, en mi opinión, la mejor solución, ya que el concepto de una clase de clase es algo bastante ajeno para la mayoría de los usuarios, e incluso puede ser difícil de determinar para algunos programadores.

Otros consejos

Creo que MELV tiene razón, es mejor almacenar configuraciones en el directorio de inicio y proporcionar la capacidad de cambiarlo, pero si alguien necesita agregar algo a ClassPath, solo puede agregar el siguiente código a <configuration><archive>.

<manifestEntries>
    <Class-Path>config/</Class-Path>
    <mode>development</mode>
    <url>${pom.url}</url>
</manifestEntries>

Si declaras <addClasspath>true</addClasspath>, entonces también se agregarán clases de dependencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top