コードジェネレータを使用して、利用可能なDubbo providerプロジェクトを迅速に構築


コードジェネレータを使用して、利用可能なDubbo providerプロジェクトを迅速に構築
本明細書で使用するコードジェネレータはdubbosupport-generatorであり、githubでオープンソースされています.https://github.com/Sailingboat1988/dubbosupport-generator
releaseページに移動して、最新バージョンの実行可能パッケージをダウンロードします.
概要
dubbosupport-generatorはdubboサンプルproviderを生成するためのコードジェネレータであり、プロジェクト名、パッケージ名などの情報をカスタマイズして生成されたプロジェクト、例えばsample-providerをカスタマイズすることができ、EclipseやIntellij Ideaなどの開発環境を直接インポートすることができ、mavenコマンドを直接利用してsample-provider-1.0-full.tar.gzなどの生成パッケージをコンパイルすることもできる.このパッケージは直接サーバ上で実行できますが、後述の章で詳しく説明します.
コードジェネレータ
ダウンロードと解凍
releaseバージョンのパッケージ、例えばgenerator-1.0.zipをダウンロードし、解凍します.
カスタムプロファイルgenerator-1.0に入り、customConfig.propertiesファイルを新規作成します.$ touch customConfig.properties $ vim customConfig.propertiesファイルを編集し、次の内容をファイルにコピーします.
groupId=com.your.company
artifactId=sample-provider
version=1.0
projectName=sample-provider
applicationName=sample-provider
basePackageName=com.your.company.sample
# empty if you wanna output the project to the current directory
outputDir=
providerPort=20890
zookeeper=localhost:2181
# maven settings
javaVersion=1.6
dubboVersion=2.5.3
springVersion=4.0.8.RELEASE
zookeeperVersion=3.3.1
# empty if you haven't any nexus repository
nexusReleaseUrl=
nexusSnapshotUrl=
nexusRepoId=

自分のニーズに応じて、対応する構成項目を変更します.outputDir, nexusReleaseUrl, nexusSnapshotUrl, nexusRepoIdが空である場合を除き、その他は必須です.
うんてん
実行run.sh(unix/linux/osx)またはrun.bat(windows)$ cd generator-1.0 $ ./run.sh or .\run.bat
生成されたアイテム
例えばsample-providerは、標準maven構造に適合するjavaエンジニアリングである.
以下の内容に係る経路、パケット名、ファイル名は、いずれもコードジェネレータによって生成されたプロジェクトの経路、パケット名、ファイル名を指し、本プロジェクトではなく、あなたが記入したcustomConfig.propertiesの構成によって、経路、パケット名、ファイル名が異なります.
ローカルデバッグ
コードジェネレータは、独自のサービスクラスを記述するために参照できる例示的なサービスクラスcom.your.company.sample.SimpleServiceを生成する.com.your.company.sample.SimpleServiceクラスをデバッグして、プロジェクトが正常かどうかを確認することもできます.
まず、src/main/resources/application.propertiesの構成が正しいかどうかを確認する必要があります.特にzookeeperは、コストベースのアドレスを構成する場合、あなたのマシンはzookeeperソフトウェアをインストールして実行する必要があります.その後、providerサービスをzookeeperに登録するmainメソッドが含まれているcom.your.company.sample.Mainを実行する必要があります.その後、com.your.company.sample.SimpleServiceTestクラスのjunitテスト例を実行します.このテスト例は、登録したばかりのproviderをsrc/test/resources/consumer.xmlで取得し、呼び出しを完了します.意外でなければ、テスト例は正常に実行されます.
生成されたアイテムをMavenでパッケージ化
生成された項目sample-providerでは、mvn clean package -Dmaven.test.skip=trueコマンドを実行してパッケージ化され、生成されたパッケージは2つ、sample-provider-1.0-full.tar.gzsample-provider-1.0-interface-only.jarである
フルパッケージsample-provider-1.0-full.tar.gz.このパッケージには、プログラムに必要なバイナリクラスファイル、依存jarパッケージ、実行スクリプトが含まれています.dubbo providerプログラムを起動するためにサーバにアップロードすることができます.
この完全なパッケージのパッケージ構成を変更する場合は、通常は変更する必要はありませんが、src/main/assembly/full.xmlを変更してください.
dir
description
classes/
プロジェクトを保存するクラスファイルおよびプロファイル
lib/
依存jarファイルの保存に使用
bin/
実行可能ファイルの保存
bin/log.sh
ログの表示
bin/start.sh
アプリケーションの開始
bin/status.sh
実行ステータスの表示
bin/stop.sh
アプリケーションを閉じる
インタフェースパッケージ
たとえばsample-provider-1.0-interface-only.jarでは、このパッケージにはインタフェースクラスのみが含まれており、実装クラスや他の関係のないクラスは含まれていません.nexusにパブリッシュしたり、dubboサービスを呼び出す必要がある人に直接送ったりすることができます.
サービスクラスを追加した場合は、src/main/assembly/interface-only.xmlファイルを変更し、例を参照して独自のサービスと必要なpojoクラスを追加します.
インタフェースパッケージのパブリッシュ
チームで働いていて、チームが自分のnexusサーバ(オープンソースのmaven倉庫)を構築している場合は、あなたのインタフェースパッケージ(sample-provider-1.0-interface-only.jar)をnexusサーバに公開することができます.これにより、providerサービスを呼び出す必要がある開発者はmavenの方法で簡単にインタフェースパッケージを得ることができます.customConfig.propertiesでnexusに関する情報を構成している場合は、src/main/mvn-scripts/deploy-interface-release.batまたはsrc/main/mvn-scripts/deploy-interface-snapshot.batを使用して、mvn clean packageパッケージを先に実行してパッケージをnexusサーバに公開することができます.customConfig.propertiesでnexusに関する情報を構成していない場合は、コード生成後にsrc/main/mvn-scripts/deploy-interface-release.batまたはsrc/main/mvn-scripts/deploy-interface-snapshot.batを手動で変更することもできます.
インタフェースパッケージをnexusサーバに公開する前に、対応する権限があるかどうかを確認してください.どうすればいいか分からない場合は、次のアドバイスを参照してmaven settingsファイルを構成してください.
ユーザー名パスワードなどの情報を追加するためのMaven Settingsファイルの構成
使用しているsettings.xmlファイルを見つけて、次の情報を追加します.
<servers>
    <server>
        <id>your-nexus-repo-idid>
        <username>adminusername>
        <password>****password>
    server>
servers>
pom.xmlファイルに次の情報を追加します(nexus-url情報の変更に注意してください):releaseライブラリの例では、snapshotとreleaseのurlは通常異なります.
<distributionManagement>
   <repository>
      <id>your-nexus-repo-idid>
      <name>Your Nexus Repositoryname>
      <url>http://your-nexus-ip:port/nexus/content/repositories/Releaseurl>
   repository>
distributionManagement>

作者に連絡する
qq 450550330 email [email protected]