Maven-deployment-automation

提供:Dev Guides
移動先:案内検索

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
  • SCM*

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ファイルを確認できます。