English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Um grande aplicativo de software geralmente contém vários módulos e, na maioria das vezes, a cena é que várias equipes desenvolvem módulos diferentes do mesmo aplicativo. Por exemplo, imagine uma equipe desenvolvendo a frente do aplicativo, o projeto é app-ui(app-ui.jar:1).0),enquanto outra equipe desenvolve o backend da aplicação, usando o projeto data-service(data-service.jar:1).0).
Agora pode ocorrer a seguinte situação de desenvolvimento do data-A equipe de service está realizando correções de bugs ou melhorias no projeto a um ritmo acelerado e quase todos os dois dias lançam bibliotecas para o repositório remoto. Agora, se o data-Se a equipe de service carregar uma nova versão a cada dois dias, surgirão os seguintes problemas:
data-A equipe de service deve informar o app sempre que lançar código atualizado.-A equipe UI.
app-A equipe UI precisa atualizar frequentemente o arquivo pom.xml para a versão mais recente.
To solve this situation,Snapshotconcept comes into play.
Snapshot is a special version that specifies a copy of the current development progress. Unlike regular versions, Maven checks for new snapshots in the remote repository each time it builds. now data-service team will release the snapshot of the updated code to the repository, for example data-serviço:1.0-SNAPSHOT instead of the old snapshot jar package.
For versions, if Maven has previously downloaded the specified version file, for example data-serviço:1.0, Maven will no longer download new available 1.0 file. To download the updated code, data-service version needs to be upgraded to1.1.
In the case of snapshot, each app-ui team builds their project, Maven will automatically retrieve the latest snapshot (data-serviço:1.0-SNAPSHOT).
app-ui project uses data-service project's 1.0 Snapshot.
<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> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>data-service</groupId> <artifactId>data-service</artifactId> <version>1.0-SNAPSHOT</version> <scope>test</scope> </dependency> </dependencies> </project>
data-service project is released for each small change 1.0 Snapshot.
<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> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>
Embora, em situações de snapshot, o Maven obtenha automaticamente a última versão snapshot no dia a dia, você também pode usá-lo em qualquer comando Maven -O parâmetro U força o Maven a construir a última versão snapshot agora.
mvn clean package -U
Vamos abrir o console de comando, vá para C:\ > MVN > app-vá para o diretório ui, execute o comando mvn a seguir.
C:\MVN\app-ui>mvn clean package -U
O Maven baixará dados-Depois de instalar a última versão snapshot do serviço, comece a construir o projeto.
[INFO] Pesquisando por projetos... [INFO] ------------------------------------------------------------------- [INFO] Construção de consumerBanking [INFO] tarefa-segmento: [clean, package] [INFO] ------------------------------------------------------------------- [INFO] Baixando dados-serviço:1.0-SNAPSHOT [INFO] 290K baixado. [INFO] [clean:clean {execution: default-clean] [INFO] Apagando diretório C:\MVN\app-ui\target [INFO] [resources:resources {execution: default-resources}] [WARNING] Usando codificação da plataforma (Cp1252 na verdade) para copiar recursos filtrados, i.e. build depende da plataforma! [INFO] ignorar diretório de recursos não existente C:\MVN\app-ui\src\main\ recursos [INFO] [compiler:compile {execution: default-compile}] [INFO] Compilando 1 arquivo de origem para C:\MVN\app-ui\target\classes [INFO] [resources:testResources {execution: default-testResources}] [WARNING] Usando codificação da plataforma (Cp1252 na verdade) para copiar recursos filtrados, i.e. build depende da plataforma! [INFO] ignorar diretório de recursos não existente C:\MVN\app-ui\src\test\ recursos [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compilando 1 arquivo de origem para C:\MVN\app-ui\target\test-classes [INFO] [surefire:test {execution: default-test}] [INFO] Diretório de relatório Surefire: C:\MVN\app-ui\target\ surefire-relatórios ------------------------------------------------------- TESTES ------------------------------------------------------- Executando com.companyname.bank.AppTest Testes Executados: 1, Falhas: 0, Erros: 0, Ignorados: 0, Tempo decorrido: 0.027 seg Resultados: Testes Executados: 1, Falhas: 0, Erros: 0, Ignorados: 0 [INFO] [jar:jar {execution: default-jar}] [INFO] Construção de jar: C:\MVN\app-ui\target\ app-ui-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] CONSTRUÇÃO BEM-SUCEDIDA [INFO] ------------------------------------------------------------------------ [INFO] Tempo Total: 2 segundos [INFO] Concluído em: Terça, Jul 10 16:52:18 IST 2012 [INFO] Memória Final: 16M/89M [INFO] ------------------------------------------------------------------------