English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Eine große Softwareanwendung enthält in der Regel mehrere Module, und die typische Szene ist, dass mehrere Teams unterschiedliche Module derselben Anwendung entwickeln. Nennen wir ein Beispiel, stellen wir uns vor, dass eine Gruppe die Frontend-Anwendung entwickelt und das Projekt app-ui(app-ui.jar:1).0),während eine andere Gruppe eine Anwendung im Hintergrund entwickelt, die das Projekt data-service(data-service.jar:1).0).
Jetzt könnte eine mögliche Situation sein, dass die Entwicklung von data-Das Service-Team arbeitet in hohem Tempo an Bug-Reparaturen oder Projektverbesserungen und veröffentlicht fast jeden zweiten Tag ein Repository in den Remote-Repositorys. Jetzt könnte es sein, dass die Entwicklung von data-Wenn das Service-Team alle zwei Tage eine neue Version hochlädt, könnte das folgende Problem auftreten:
data-Das Service-Team muss jedes Mal, wenn es aktualisierte Code veröffentlicht, app informieren-UI-Team.
app-Das UI-Team muss regelmäßig ihre Datei pom.xml auf die neueste Version aktualisieren.
Um dieses Problem zu lösen,SchnappschussKonzept ist nützlich.
Ein Schnappschuss ist eine spezielle Versionsnummer, die eine Kopie eines bestimmten aktuellen Entwicklungsfortschritts angibt. Im Gegensatz zu normalen Versionen überprüft Maven bei jedem Bau immer neue Schnappschüsse im Remote-Repository. Jetzt data-Das Dienstprojekt-Team veröffentlicht regelmäßig aktualisierte Schnappschüsse der Code-Updates in den Repository, z.B. data-service:1.0-Schnappschuss, um die alten Schnappschuss-Jar-Pakete zu ersetzen.
Für die Versionsnummer, wenn Maven zuvor die angegebene Versionsdatei heruntergeladen hat, z.B. data-service:1.0, Maven wird nicht mehr neue verfügbare 1.0 Datei. Um aktualisierte Code herunterzuladen, data-Der Versionsnummer des Dienstprojekts muss erhöht werden1。1。
Schnappschuss-Fällen, jedes app-Das ui-Team baut ihre Projekte, und Maven holt automatisch die neuesten Schnappschüsse (data-service:1.0-Schnappschuss).
app-Das ui-Projekt verwendet data-Das Dienstprojekt 1.0 Schnappschuss.
<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-Der Schnappschuss-Dienstprojekt wird für jede kleine Änderung veröffentlicht 1.0 Schnappschuss.
<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>
Obwohl Maven in der Regel automatisch die neueste Snapshot-Version herunterlädt, wenn Sie Snapshot verwendet werden, können Sie dies auch in jedem Maven-Befehl tun -Parameter erzwingt Maven, jetzt die neueste Snapshot-Version zu bauen.
U -U
mvn clean package-Öffnen Sie die Befehlszeile, wechseln Sie zu C:\ > MVN > app
C:\MVN\app-ui>mvn clean package -U
Maven wird die Daten herunterladen-Nachdem Sie die neueste Snapshot-Version des services erreicht haben, beginnen Sie mit dem Aufbau des Projekts.
[INFO] Scanning for projects... [INFO] ------------------------------------------------------------------- [INFO] Building consumerBanking [INFO] task-segment: [clean, package] [INFO] ------------------------------------------------------------------- [INFO] Downloading data-service:1.0-SNAPSHOT [INFO] 290K downloaded. [INFO] [clean:clean {execution: default-clean]} [INFO] Deleting directory C:\MVN\app-ui\target [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\MVN\app-ui\src\main\ ressourcen [INFO] [compiler:compile {execution: default-compile}] [INFO] Kompilierung 1 Quelldatei in C:\MVN\app-ui\target\classes [INFO] [resources:testResources {execution: default-testResources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\MVN\app-ui\src\test\ ressourcen [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Kompilierung 1 Quelldatei in C:\MVN\app-ui\ziel\test-classes [INFO] [surefire:test {execution: default-test}] [INFO] Surefire-Berichtsverzeichnis: C:\MVN\app-ui\ziel\ surefire-berichte ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.companyname.bank.AppTest Durchgeführte Tests: 1, Fehler: 0, Fehler: 0, Ausgelassen: 0, Verstrichene Zeit: 0.027 sec Ergebnisse: Durchgeführte Tests: 1, Fehler: 0, Fehler: 0, Ausgelassen: 0 [INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: C:\MVN\app-ui\ziel\ app-ui-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILDSUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Gesamte Zeit: 2 Sekunden [INFO] Abgeschlossen am: Dienstag, Jul 10 16:52:18 IST 2012 [INFO] Endgültiges Speicher: 16M/89M [INFO] ------------------------------------------------------------------------