使用代码生成器快速搭建起一个可用的 Dubbo provider 工程

来源:互联网 发布:天猫双11历年销售数据 编辑:程序博客网 时间:2024/05/02 13:46

使用代码生成器快速搭建起一个可用的 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.companyartifactId=sample-providerversion=1.0projectName=sample-providerapplicationName=sample-providerbasePackageName=com.your.company.sample# empty if you wanna output the project to the current directoryoutputDir=providerPort=20890zookeeper=localhost:2181# maven settingsjavaVersion=1.6dubboVersion=2.5.3springVersion=4.0.8.RELEASEzookeeperVersion=3.3.1# empty if you haven't any nexus repositorynexusReleaseUrl=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配置,路径、包名、文件名均会有所不同。

本地调试

代码生成器生成了一个示例service类com.your.company.sample.SimpleService,可以参照此类来编写自己的service类。

你也可以先调试com.your.company.sample.SimpleService类来查看项目是否正常。

首先你需要确认src/main/resources/application.properties里的配置是否正确,尤其是zookeeper,如果配置成本地的地址,那么你的机器需要安装zookeeper软件并运行起来。
然后你需要运行com.your.company.sample.Main,此类中包含了一个main方法,会将provider服务注册到zookeeper中。
然后运行com.your.company.sample.SimpleServiceTest类中的junit测试用例,这个测试用例会通过src/test/resources/consumer.xml来获得你刚刚注册的provider,并完成调用,如果不出意外的话,测试用例会运行成功。

由生成的项目通过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服务的人。

如果你新增了service类,那么要修改src/main/assembly/interface-only.xml文件,参照示例以添加你自己的service和必要的pojo类。

发布接口包

如果你工作于一个团队之中,并且团队已搭建自己的nexus服务器(一种开源的maven仓库),那么你可以发布你的接口包(sample-provider-1.0-interface-only.jar)到nexus服务器上,这样那些需要调用你的provider服务的开发者可以通过maven的方式方便地获得你的接口包。

如果你在customConfig.properties中配置了nexus相关的信息,那么现在你可以使用src/main/mvn-scripts/deploy-interface-release.batsrc/main/mvn-scripts/deploy-interface-snapshot.bat来发布你的接口包(interface-only)到nexus服务器上,前提是先运行mvn clean package打包。
如果你没有在customConfig.properties中配置nexus相关的信息,那么你也可以在代码生成之后手动修改src/main/mvn-scripts/deploy-interface-release.batsrc/main/mvn-scripts/deploy-interface-snapshot.bat

在发布你的接口包到nexus服务器之前,请先确认你是否有相应的权限,如果你不清楚怎么做,可参考下面的建议来配置你的maven settings文件

配置Maven Settings文件以添加用户名密码等信息

找到你正在使用的settings.xml文件,添加以下信息

<servers>    <server>        <id>your-nexus-repo-id</id>        <username>admin</username>        <password>****</password>    </server></servers>

pom.xml文件中添加以下信息(注意修改你的nexus-url信息):
以release库为例,snapshot与release的url通常会不一样

<distributionManagement>   <repository>      <id>your-nexus-repo-id</id>      <name>Your Nexus Repository</name>      <url>http://your-nexus-ip:port/nexus/content/repositories/Release</url>   </repository></distributionManagement>

联系作者

qq 450550330
email pengyufreedom@aliyun.com

阅读全文
0 0
原创粉丝点击