使用代码生成器快速搭建起一个可用的 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.gz
和 sample-provider-1.0-interface-only.jar
完整包
sample-provider-1.0-full.tar.gz
,此程序包包含了程序所需的二进制类文件、依赖的jar包、运行脚本,你可以将其上传到服务器上运行,以启动dubbo provider程序。
如果你希望修改此完整包的打包配置,请修改src/main/assembly/full.xml
,尽管通常情况下并不需要修改它。
接口包
例如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.bat
或src/main/mvn-scripts/deploy-interface-snapshot.bat
来发布你的接口包(interface-only)到nexus服务器上,前提是先运行mvn clean package
打包。
如果你没有在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-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
- 使用代码生成器快速搭建起一个可用的 Dubbo provider 工程
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境(2,provider工程构建)
- 快速构建一个可用的Maven工程
- 使用Express框架应用生成器快速搭建一个应用骨架
- 阿里dubbo工程的搭建
- 使用dubbo与zookeeper搭建面向服务的架构工程
- 快速搭建一个简单的spring+maven工程
- 49.新起一个纯代码空白工程
- 快速搭建一个Express工程骨架
- 一个简单的dubbo项目搭建案例
- 使用Angular Cli 快速搭建工程
- Angular2-使用Angular CLI快速搭建工程
- C#写的一个代码生成器
- 一个java代码生成器的简单实现
- 快速搭建起基于Webwork与Hibernate的web应用
- 使用Django搭建一个简单的Python Web工程
- 使用狼奔代码生成器快速开发物资采购系统
- (27)Dubbo的Provider和consumer(springmvc)搭建完成-goodjob!
- SVG在Android中的使用
- npm ERR!无法安装任何包的解决办法
- java基础(1)面向对象
- SpringMVC的web.xml文件
- 夏季你必须了解的防晒知识
- 使用代码生成器快速搭建起一个可用的 Dubbo provider 工程
- Annotation注解APT(五):注入框架ButterKnife
- 深度学习——Batch Normalization
- Oracle中Merge into使用
- 2. JavaScript 设计模式(简单工厂,工厂方法,抽象工厂)
- 仿微信摇一摇最简单实现
- git status简介
- 连接orcl报错12154代码错误 tns识别不赖哦
- 用 Matlab GUI搭建一个简单的CBIR图像检索系统(二)