Maven-deployment-automation
Maven-展開の自動化
プロジェクト開発では、通常、展開プロセスは次の手順で構成されます-
- 進行中のすべてのプロジェクトのコードをSVN(バージョン管理システム)またはソースコードリポジトリにチェックインし、タグ付けします。
- SVNから完全なソースコードをダウンロードします。
- アプリケーションをビルドします。
- ビルド出力をWARまたはEARファイルのいずれかを共通のネットワークロケーションに保存します。
- ネットワークからファイルを取得し、そのファイルを運用サイトに展開します。
- ドキュメントの日付を更新し、アプリケーションのバージョン番号を更新しました。
問題文
通常、上記の展開プロセスには複数の人が関与しています。 1つのチームがコードのチェックインを処理し、別のチームがビルドなどを処理する場合があります。 手動による作業やマルチチーム環境により、どのステップも見逃される可能性が非常に高くなります。 たとえば、古いビルドはネットワークマシンで置き換えられず、展開チームは古いビルドを再度展開しました。
溶液
以下を組み合わせて、展開プロセスを自動化します-
- Maven、プロジェクトをビルドおよびリリースします。
- ソースコードを管理するためのソースコードリポジトリであるSubVersion。 *プロジェクトバイナリを管理するためのリモートリポジトリマネージャー(Jfrog/Nexus)。
プロジェクトPOM.xmlを更新する
Mavenリリースプラグインを使用して、自動化されたリリースプロセスを作成します。
例:bus-core-apiプロジェクトPOM.xml。
<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>bus-core-api</groupId>
<artifactId>bus-core-api</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<scm>
<url>http://www.svn.com</url>
<connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/
Framework</connection>
<developerConnection>scm:svn:${username}/${password}@localhost:8080:
common_core_api:1101:code</developerConnection>
</scm>
<distributionManagement>
<repository>
<id>Core-API-Java-Release</id>
<name>Release repository</name>
<url>http://localhost:8081/nexus/content/repositories/
Core-Api-Release</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<scmCommentPrefix>[bus-core-api-release-checkin]-<
/scmCommentPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>
Pom.xmlでは、以下が使用した重要な要素です-
Sr.No. | Element & Description |
---|---|
1 |
MavenがソースコードをチェックアウトするSVNの場所を構成します。 |
2 |
Repositories コードのビルドが成功した後、ビルドされたWAR/EAR/JARまたはその他のアーティファクトが保存される場所。 |
3 |
Plugin maven-release-pluginは、展開プロセスを自動化するように構成されています。 |
Mavenリリースプラグイン
Mavenは、 maven-release-plugin を使用して次の便利なタスクを実行します。
mvn release:clean
最後のリリースプロセスが成功しなかった場合に、ワークスペースをクリーンアップします。
mvn release:rollback
最後のリリースプロセスが成功しなかった場合に備えて、ワークスペースのコードと構成に加えられた変更をロールバックします。
mvn release:prepare
などの複数の操作を実行します-
- コミットされていないローカル変更があるかどうかを確認します。
- SNAPSHOT依存関係がないことを確認します。
- アプリケーションのバージョンを変更し、そのバージョンからSNAPSHOTを削除してリリースします。
- pomファイルをSVNに更新します。
- テストケースを実行します。
- 変更したPOMファイルをコミットします。
- Subversionのコードにタグを付けます
- バージョン番号を増やし、将来のリリースのためにSNAPSHOTを追加します。
- 変更したPOMファイルをSVNにコミットします。
mvn release:perform
以前に定義されたタグを使用してコードをチェックアウトし、Mavenデプロイゴールを実行して、warまたはビルドされたアーティファクトをリポジトリにデプロイします。
コマンドコンソールを開き、 C:\> MVN> bus-core-api ディレクトリに移動して、次の mvn コマンドを実行します。
>mvn release:prepare
Mavenはプロジェクトの構築を開始します。 ビルドが成功したら、次の mvn コマンドを実行します。
>mvn release:perform
ビルドが成功したら、リポジトリ内のアップロードされたJARファイルを確認できます。