Pregunta

Estoy usando el Maven-War-Plugin para filtrar algunos recursos en Web-INF. Sobre todo cosas estáticas como:

var url = ${contextRoot}/save.json;

o

<link href="static/css/layout-${buildNumber}.css"/>

Todo funciona fantásticamente. Mi problema es que ha creado una pesadilla de desarrollo. Por lo general, la implementación en un Tomcat local y mi IDE maneja los cambios de copia (en guardar) en el directorio de destino. Pero cuando eso sucede, termino con un literal $ {propiedad} en mi archivo en lugar de lo que fue reemplazado originalmente por el complemento de guerra. Preferiría probar los cambios de vista/recursos estáticos sobre la marcha en lugar de tener que volver a desplegar para cada cambio.

Me he metido en el complemento TomCat para ejecutarlo, pero cuando utilicé que el filtrado de recursos no ocurre a menos que lo use para implementar, en cuyo caso pierdo las capacidades de intercambio en caliente.

Estoy usando Spring y estaría bien usando temas, filtrando las propiedades del tema y luego usando eso para reemplazar los valores en mi vista. Pero, ¿qué pasa con JS/CSS/Otras cosas estáticas?

¿Hay alguna manera de tener el complemento de guerra "Filtrar sobre la marcha"? ¿Alguien puede recomendar una mejor manera de lograr lo que estoy tratando de hacer? Siento que lo he estado mirando durante demasiado tiempo y tengo una visión de túnel sobre el asunto.

¿Fue útil?

Solución 2

Al final mantuve los mismos métodos pero cambié mi enfoque para lograr esto.

Para JavaScript, puse cualquier cosa que deba filtrarse en un solo archivo de constantes:

// Constants.js

var BASE_URL = '${contextRoot}';

La razón detrás de esto es que el Constants.js El archivo rara vez se modificará y evitará el problema de que ese archivo se vuelva a colocar sobre la marcha.

Mi otro ejemplo fue usar ${buildNumber} Para evitar que los recursos del navegador almacenen en caché en los despliegues. Descubrí que agregar el número de compilación a una cadena de consulta funcionó igual de bien:

<link href="static/css/layout.css?${buildNumber}"/>

Otros consejos

Si usa Eclipse con M2E y M2E-WTP, puede obtener un filtrado de recursos web sobre la marcha. Esto se explica aquí: https://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-noteworthy

Y demostrado allí: http://bit.ly/wgcd4j

Tenga en cuenta que, en este video, la interfaz de usuario de Maven Perfil Management proviene de JBoss Tools 3.3.0.beta1 (http://docs.jboss.org/tools/whatsnew/maven/maven-news-3.3.0.beta1.html )

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