文章目录
  1. 1. 下载源码和构建 dubbox
  2. 2. 修改 pom.xml 和 setting.xml
  3. 3. 配置 nexus 私服的权限
  4. 4. 发布到 nexus 私服

dubbo 是阿里开源的服务治理框架,可惜到 2.5.3 版本之后就不再更新,好在当当接过了更新的大旗,改名 dubbox,目前已经更新到 2.8.4 版本。由于当当并没有将 dubbox 发布到 maven 仓库中,因此在开发使用的时候,需要本地构建 dubbox,并安装到本地的 maven 仓库中。但是,当开发人员越来越多的时候,每个人都需要本地构建 dubbox 比较费时,因此,将 dubbox 发布到公司内部的私有 maven 仓库中,是一个不错的办法。

nexus 是目前用的比较多的 maven 仓库的私服,本文记录在 nexus 私服上发布 dubbox 的方法,参考 1

下载源码和构建 dubbox

下载 dubbox 2.8.4 的源码,在源码的根目录下运行 maven install

1
mvn install -DskipTests

构建的过程中跳过测试,构建完成之后,会安装到本地 maven 仓库中。

修改 pom.xmlsetting.xml

修改源码根目录下的 pom.xml,在文件尾部增加 distributionManagement 节点,如下,

1
2
3
4
5
6
7
8
......
<distributionManagement>
<repository>
<id>releases</id>
<url>http://maven-private-server:8081/nexus/content/repositories/releases</url>
</repository>
</distributionManagement>
</project>

上述的 maven-private-server 需要换成实际的私服地址。还有 maven 的配置文件 setting.xml,也需要确认一下,需要有可以 deploy 的用户,如下,

1
2
3
4
5
6
7
8
......
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>password</password>
</server>
......

注意,maven server 的 id 需要和上面配置的 repository 的 id 保持一致。

配置 nexus 私服的权限

确认 releases 这个私服的权限是允许重复发布的,如下,

1
Deployment Policy: Allow Redeploy

这个主要是如果 dubbox 需要重复发布的话,可以覆盖之前发布的版本。

发布到 nexus 私服

maven deploy 发布到 nexus 私服,如下,

1
mvn deploy -DskipTests

deploy 完成后,发现只发布了几个模块,并不是发布了所有的组件,

1
2
3
4
5
6
7
8
dubbo
dubbo-admin
dubbo-demo-consumer
dubbo-demo-provider
dubbo-monitor-simple
dubbo-parent
dubbo-registry-simple
hessian-lite

原因是,部分组件的 pom.xml 中设置了 <skip_maven_deploy>true</skip_maven_deploy> 在 deploy 的时候会跳过这些组件。如果要全部发布,需要全部修改为 <skip_maven_deploy>false</skip_maven_deploy>,可以使用如下命令来全部替换,

1
find . | grep pom.xml | xargs grep -l "skip_maven_deploy>true" | xargs sed -i 's/<skip_maven_deploy>true/<skip_maven_deploy>false/g'

修改完之后,重新运行 mvn deploy -DskipTests 即可全部 deploy。

至此,dubbox 已经发布到私服完成.

文章目录
  1. 1. 下载源码和构建 dubbox
  2. 2. 修改 pom.xml 和 setting.xml
  3. 3. 配置 nexus 私服的权限
  4. 4. 发布到 nexus 私服

欢迎来到Valleylord的博客!

本博的文章尽量原创。