English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Maven 自動化デプロイメント

プロジェクト開発プロセス中、デプロイメントプロセスは以下のステップを含みます:

  • プロジェクトコードをSVNまたはコードリポジトリにコミットし、タグを付けます。

  • SVNから完全なソースコードをダウンロードします。

  • アプリケーションをビルドします。

  • ビルド出力のWARまたはEARファイルを一般的なネットワーク場所に保存します。

  • ネットワークからファイルを取得し、プロダクションサイトにデプロイメントします。

  • ドキュメントを更新し、アプリケーションのバージョン番号を更新します。

問題の説明

通常、開発プロセスでは複数のチームが関与します。あるチームがコードの提出を担当し、別のチームがビルドを担当するなど、複数のチームが関与するため、どのステップでもエラーが発生する可能性があります。例えば、古いバージョンがネットワークマシンに更新されていない場合、デプロイメントチームが古いビルドバージョンを再デプロイメントする可能性があります。

ソリューション

以下の方法を組み合わせて自動デプロイメントを実現します:

  • 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ファイルでよく使用される重要な要素ノードは以下の表に示されています:

要素ノード説明
SCMSVNのパスを設定し、Mavenがそのパスからコードを取得します。
リポジトリ構築されたWARまたはEARまたはJARファイルの場所、またはソースコードが構築成功した後生成されるコンポーネントの保存場所。
プラグインmaven を設定-release-plugin プラグインを使用して自動デプロイメントプロセスを実現します。

Maven Release プラグイン

Maven が maven を使用-release-以下のタスクを実行するために plugin プラグインを使用します。

mvn release:clean

ワークスペースをクリーンアップして、最新のリリースプロセスが成功するようにします。

mvn release:rollback

前回のリリースプロセスが失敗した場合、修正のワークスペースコードと設定をロールバックしてリリースプロセスが成功するようにします。

mvn release:prepare

以下の操作を実行します:

  • ローカルに未コミットの修正があるか確認します。

  • スナップショットの依存関係がないことを確認します。

  • アプリケーションのバージョン情報を変更してリリースします。

  • POM ファイルを SVN に更新します。

  • テスト用例を実行します。

  • 修正後の POM ファイルをコミットします。

  • SVN 上でコードにマークを付けます。

  • バージョン番号を追加し、将来的なリリースに備えてスナップショットを付ける

  • 修正後の POM ファイルを SVN にコミットします。

mvn release:perform

コードを前にマークした場所に切り替え、Maven デプロイメントターゲットを実行して WAR ファイルをデプロイしたり、リポジトリに構造を構築します。

コマンドターミナルを開き、C:\ > MVN > bus に移動します。-core-api ディレクトリに移動して、以下の mvn コマンドを実行します。

C:\MVN\bus-core-api>mvn release:prepare

Maven が整个プロジェクトの構築を開始します。構築が成功した後、以下の mvn コマンドを実行できます。

C:\MVN\bus-core-api>mvn release:perform

構築が成功した後、あなたのリポジトリにアップロードした JAR ファイルが有効であるかを確認できます。