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

1 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了如何使用dubbosupport-generator工具快速创建Dubbo provider工程。该代码生成器允许自定义项目名称和包名,生成的项目可直接在IDE中使用或通过Maven打包。详细步骤包括下载、配置、运行、本地调试和打包发布。此外,还提到了配置Maven Settings文件以添加用户名密码,以及发布接口包到Nexus服务器的方法。
摘要由CSDN通过智能技术生成

使用代码生成器快速搭建起一个可用的 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配置,路径、包名、文件名均会有所不同。

本地调试

代码生成器生成了一个示例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,尽管通常情况下并不需要修改它。

dirdescription
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值