English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Una aplicación de software grande generalmente contiene varios módulos y, en la mayoría de los casos, varios equipos desarrollan diferentes módulos de la misma aplicación. Por ejemplo, imagine un equipo que desarrolla la interfaz de usuario de la aplicación, el proyecto es app-ui(app-ui.jar:1). Mientras que otro equipo desarrolla la parte posterior de la aplicación, utiliza el proyecto data-service(data-service.jar:1).
Ahora puede ocurrir que el desarrollo de data-El equipo de servicio está realizando reparaciones de errores rápidas o mejoras en el proyecto y prácticamente lanzan bibliotecas a los repositorios remotos cada dos días. Ahora, si data-Si el equipo de servicio carga una nueva versión cada dos días, surgirán los siguientes problemas:
data-El equipo de servicio debe informar a app cada vez que publique código actualizado.-El equipo UI.
app-El equipo UI necesita actualizar regularmente su archivo pom.xml a la última versión.
Para resolver esta situación,SnapshotLa noción se ha puesto en uso.
Una snapshot es una versión especial que especifica una copia del progreso de desarrollo actual. Diferente de las versiones convencionales, Maven verifica nuevas snapshots en el repositorio remoto cada vez que construye. Ahora data-El equipo service publicará snapshots actualizados del código en el repositorio, por ejemplo data-servicio:1.0-SNAPSHOT en lugar del paquete jar de snapshot antiguo.
Si para una versión, si Maven ha descargado anteriormente el archivo de versión especificado, por ejemplo data-servicio:1Si desea descargar el código actualizado, data 1.0 archivo.-La versión del proyecto service debe aumentar a1.1.
En el caso de las snapshots, cada vez que app-Cuando el equipo ui construye sus proyectos, Maven obtiene automáticamente la última versión de snapshot (data-servicio:1.0-SNAPSHOT).
app-El proyecto ui utiliza data-El proyecto service utiliza data 1.0 Snapshots.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>app-ui</groupId> <artifactId>app-ui</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>health</name> <url>http://maven.apache.org</url> <properties> <proyecto.build.sourceEncoding>UTF-8</proyecto.build.sourceEncoding> </propiedades> <dependencies> <dependency> <groupId>data-service</groupId> <artifactId>data-service</artifactId> <version>1.0-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> </proyecto>
data-El proyecto service se publica con cada cambio pequeño 1.0 Snapshots.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>data-service</groupId> <artifactId>data-service</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>health</name> <url>http://maven.apache.org</url> <properties> <proyecto.build.sourceEncoding>UTF-8</proyecto.build.sourceEncoding> </propiedades> </proyecto>
Aunque, en el caso de snapshots, Maven obtiene automáticamente el snapshot más reciente en el trabajo diario, también puede usarlo en cualquier comando mvn -U fuerza a Maven a construir el snapshot más reciente.
mvn limpiar paquete -U
Vamos a abrir la consola de comandos, ir a C:\ > MVN > app-vaya al directorio ui, luego ejecute el siguiente comando mvn.
C:\MVN\app-ui>mvn limpiar paquete -U
Maven descargará data-Después de obtener el snapshot más reciente del servicio, comience a construir el proyecto.
[INFO] Escaneando proyectos... [INFO] ------------------------------------------------------------------- [INFO] Construyendo consumerBanking [INFO] tarea-segmento: [limpiar, paquete] [INFO] ------------------------------------------------------------------- [INFO] Descargando datos-servicio:1.0-SNAPSHOT [INFO] 290K descargado. [INFO] [limpiar:limpiar {ejecución: default-limpiar]... [INFO] Eliminando el directorio C:\MVN\app-ui\target [INFO] [recursos:recursos {ejecución: default-recursos}] [WARNING] Usando la codificación de plataforma (Cp1252 realmente) para copiar los recursos filtrados, es decir, ¡la construcción depende de la plataforma! [INFO] salta directamente el directorio de recursos no existente C:\MVN\app-ui\src\main\ recursos [INFO] [compilador:compilar {ejecución: default-compilar}] [INFO] Compilación 1 archivo de origen a C:\MVN\app-ui\target\classes [INFO] [recursos:testResources {ejecución: default-testResources}] [WARNING] Usando la codificación de plataforma (Cp1252 realmente) para copiar los recursos filtrados, es decir, ¡la construcción depende de la plataforma! [INFO] salta directamente el directorio de recursos no existente C:\MVN\app-ui\src\test\ recursos [INFO] [compiler:testCompile {ejecución: default-testCompile}] [INFO] Compilación 1 archivo de origen a C:\MVN\app-ui\target\test-clases [INFO] [surefire:test {ejecución: default-test}] [INFO] Directorio de informes Surefire: C:\MVN\app-ui\target\ surefire-informes ------------------------------------------------------- PRUEBAS ------------------------------------------------------- Ejecutando com.companyname.bank.AppTest Pruebas ejecutadas: 1, Fallas: 0, Errores: 0, Saltados: 0, Tiempo transcurrido: 0.027 seg Resultados: Pruebas ejecutadas: 1, Fallas: 0, Errores: 0, Saltados: 0 [INFO] [jar:jar {ejecución: default-jar}] [INFO] Construyendo jar: C:\MVN\app-ui\target\ app-ui-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] CONSTRUCCIÓN EXITOSA [INFO] ------------------------------------------------------------------------ [INFO] Tiempo total: 2 segundos [INFO] Finalizado el: Mar Jue 10 16:52:18 IST 2012 [INFO] Memoria final: 16M/89M [INFO] ------------------------------------------------------------------------