English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
大規模なソフトウェアアプリケーションは通常、複数のモジュールを含んでおり、多くの場合、複数のチームが同じアプリケーションの異なるモジュールを開発しています。例えば、あるチームがアプリケーションのフロントエンドを開発し、プロジェクトはapp-ui(app-ui.jar:1。0),そして別のチームがアプリケーションのバックエンドを開発し、プロジェクトはdata-service(data-service.jar:1。0)。
現在、開発 data-service チームは高速でバグ修正やプロジェクトの改善を行っており、ほぼ隔日リモートリポジトリにライブラリをリリースしています。 現在、data-service チームが隔日新しいバージョンをアップロードする場合、以下の問題が発生する可能性があります:
data-service チームが更新されたコードをリリースするたびに、appに知らせなければなりません。-ui チーム。
app-ui チームは定期的にpom.xmlファイルを最新バージョンに更新する必要があります。
この問題を解決するために、スナップショットこの概念が役立ちます。
スナップショットは、特定の開発進度のコピーを指定する特別なバージョンです。通常のバージョンとは異なり、Maven は構築のたびにリモートリポジトリで新しいスナップショットをチェックします。 現在 data-service チームは、例えば data-service:1.0-SNAPSHOT で古いスナップショットの jar パッケージを置き換えます。
バージョンに対して、Maven が以前に指定されたバージョンのファイルをダウンロードしていました、例えば data-service:1.0、Maven は再び新しい利用可能な 1.0 ファイル。更新されたコードをダウンロードするには、data-service のバージョンを上げる必要があります1。1。
スナップショットの場合、app-ui チームがプロジェクトを構築する際、Maven は自動的に最新のスナップショット(data-service:1.0-SNAPSHOT)。
app-ui プロジェクトは data を使用しています-service プロジェクトの 1.0 快照。
<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 プロジェクトは小さな変更ごとにリリースされます 1.0 快照。
<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>
快照の状況では、Mavenは日常生活で自動的に最新のスナップショットを取得しますが、マavenコマンドのどちらでも使用できます。 -Uパラメータを使用して、Mavenが現在の最新のスナップショットをビルドするように強制します。
mvn clean package -U
コマンドプロンプトを開き、C:\ > MVN > appに移動します。-uiディレクトリに移動し、以下のmvnコマンドを実行します。
C:\MVN\app-ui>mvn clean package -U
Mavenはdataをダウンロードします-serviceの最新のスナップショットの後、プロジェクトのビルドを開始します。
[INFO] プロジェクトをスキャンしています... [INFO] ------------------------------------------------------------------- [INFO] consumerBankingのビルド [INFO] task-segment: [clean, package] [INFO] ------------------------------------------------------------------- [INFO] データのダウンロード中-service:1.0-SNAPSHOT [INFO] 290K ダウンロードされました。 [INFO] [clean:clean {execution: default-clean]} [INFO] ディレクトリを削除しています C:\MVN\app-ui\target [INFO] [resources:resources {execution: default-resources}] [WARNING] プラットフォームエンコーディングを使用しています(Cp1252 実際には、フィルタリングされたリソースをコピーするために、 たとえば、buildはプラットフォーム依存です! [INFO] skip non existing resourceDirectory C:\MVN\app-ui\src\main\ resources [INFO] [compiler:compile {execution: default-compile}] [INFO] コンパイル 1 ソースファイルを C:\MVN\app-ui\target\classes [INFO] [resources:testResources {execution: default-testResources}] [WARNING] プラットフォームエンコーディングを使用しています(Cp1252 実際には、フィルタリングされたリソースをコピーするために、 たとえば、buildはプラットフォーム依存です! [INFO] skip non existing resourceDirectory C:\MVN\app-ui\src\test\ resources [INFO] [compiler:testCompile {execution: default}-testCompile} [INFO] コンパイル 1 ソースファイルを C:\MVN\app-ui\target\test-classes [INFO] [surefire:test {execution: default}-test} [INFO] Surefire レポートディレクトリ: C:\MVN\app-ui\target\ surefire-レポート ------------------------------------------------------- T E S T S ------------------------------------------------------- com.companyname.bank.AppTestを実行中 テスト実行: 1, フェイルチャーズ: 0, エラーズ: 0, スキップ: 0, 時間経過: 0.027 秒 結果: テスト実行: 1, フェイルチャーズ: 0, エラーズ: 0, スキップ: 0 [INFO] [jar:jar {execution: default}-jar} [INFO] jarのビルド: C:\MVN\app-ui\target\ app-ui-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] 架築成功 [INFO] ------------------------------------------------------------------------ [INFO] 総時間: 2 秒 [INFO] 終了時刻: Tue Jul 10 16:52:18 IST 2012 [INFO] 最終メモリ: 16M/89M [INFO] ------------------------------------------------------------------------