Red de conocimiento informático - Material del sitio web - Cómo configurar diferentes archivos de configuración para entornos de desarrollo y producción

Cómo configurar diferentes archivos de configuración para entornos de desarrollo y producción

De hecho, recientemente miré Maven. Solía ​​usar ant+ivy, que es suficiente para proyectos livianos y muy flexible.

Después de mirar Maven, estuve de acuerdo. .... Hoy en día, la programación habla de convenciones, y las convenciones son buenas. El problema es que hay demasiadas cosas que van más allá de las convenciones y, al final, tenemos que depender de otras cosas. para usar maven.

En el pasado, nuestro entorno de desarrollo y Los archivos de configuración del entorno de producción se almacenan en directorios separados. El script ant crea una variable y empaqueta automáticamente diferentes archivos. fácil de administrar, por lo que no es muy sorprendente ver muchas soluciones de Maven para resolver el entorno de desarrollo/producción. Comprenda:

1. Lo que ${your.configuration} es casi lo mismo que Spring, la configuración. está escrito en el script... ¿Cuál es esta configuración...

2. Llamar a la hormiga....

Aún basado en mis ideas anteriores:

El directorio src/main originalmente contenía java y recursos, así que creé varios directorios nuevos: resources-dev, resources-test, resources-prod.

resources --- Algunos archivos de configuración compartidos, generalmente no necesita ser modificado

resources-dev --- El archivo de configuración utilizado en el entorno de desarrollo no se superpone con los archivos en el directorio de recursos.

resources-prod --- El El archivo de configuración utilizado en el entorno de producción no se superpone con los archivos en el directorio de recursos.

Al desarrollar localmente, configure el directorio del código fuente en java, recursos, recursos-dev, que se pueden desarrollar y depurar directamente. .

Al compilar, esperamos que Maven empaquete archivos en diferentes directorios según los diferentes entornos que utilizamos. Esto se puede lograr con el perfil de Maven y los complementos build-helper-maven-plugin.

dev

< complementos>

org.codehaus.mojo

build-helper-maven-plugin

1.5

agregar recurso

generar-recursos

añadir-recurso

src/main/resources_dev

maven-war-plugin

paquete

guerra

dev

prueba

org.codehaus.mojo

build-helper-maven-plugin

1.5

añadir -recurso

generar-recursos

añadir-recurso

src/main/resources_test

rces>

org.apache.maven.plugins

maven-war-plugin

paquete

guerra

prueba

< /configuración>

(Hay una versión simplificada al final del artículo)

Modifíquelo de acuerdo con el entorno de implementación real. Ejecute mvn package -P test para empaquetarlo.

Es muy simple de todos modos. Mucho xml, no muchas oraciones útiles... es demasiado prolijo

Otro: actualmente, resin e intellij idea 9 se utilizan para el desarrollo. Durante la depuración, la aplicación web se desarrolla localmente en el directorio de desarrollo webapp, por lo que mi script maven también tiene las siguientes partes:

p>

>

org.apache.maven.plugins

maven-war-plugin

2.1

WEB-INF/lib/**,WEB-INF/classes/**, WEB-INF/work/**,WEB-INF/tmp/**

false

Esta parte es pública, por supuesto, no es necesario empaquetarla durante el desarrollo... Entonces... puede usarse para el desarrollo local y empaquetarse en entornos de prueba, producción y otros.< / p>

En resumen, maven no es tan flexible como ant en términos de implementación. En términos generales, si escribe un conjunto de scripts en ant, rara vez los modificará... Es muy fácil de cambiar. Maven tiene que pensarlo dos veces si quiere copiar un directorio....

____________________________________________

Versión simplificada:

notexists

dev

< propiedades>

dev

prueba

e.target>prueba

org.codehaus.mojo

build-helper-maven-plugin

1.5

añadir-recurso

generar-recursos

añadir-recurso

src/main/resources_${package.target}

< complemento>

org.apache.maven.plugins

maven-war-plugin

2.1

WEB-INF /lib/**,WEB-INF/classes/**,WEB-INF/work/**,WEB-INF/tmp/**

false

paquete

guerra

${package.target}

Reimpreso solo como referencia. Te deseo una vida feliz y acéptalo si estás satisfecho.