Gogs:能够实现fork + 代码提交 + 代码框架

Nexus:进行jar包的版本管理,私服下载jar包共享jar包

Maven:在客户端进行模块管理和批量操作

1. 本地maven仓库配置配置settings.xml私服地址

settings.xml

<project>
<!-- 用户名密码 -->
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>xxxxxxx</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>xxxxxxx</password>
</server>
</servers>
<!-- 镜像仓库配置 -->
<mirrors>
<mirror>
<id>repo-nexus</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!-- 私服配置 -->
<profile>
<id>repo</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>repo</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>repo</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</project>

2. 创建maven项目,修改配置scm、maven-release-plungin, 推送到仓库中

pom.xml

<project>
<!-- 构建管理配置私服 -->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release FRepository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Shapshots Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement> <!-- git的版本管理控制 -->
<scm>
<connection>scm:git:http://127.0.0.1:3062/wulonghuai/maven_module.git</connection>
<developerConnection>scm:git:http://127.0.0.1:3062/wulonghuai/maven_module.git</developerConnection>
<url>http://127.0.0.1:3062/wulonghuai/maven_module/src/master</url>
</scm> <!-- 插件配置 -->
<build>
<plugins>
<!-- maven release 发布插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<username>username</username>
<password>password</password>
<branchBase>master</branchBase>
</configuration>
</plugin>
</plugins>
</build>
</project>

3. 使用命令进行快照版本发布

在mave项目目录下,对应配置的pom.xml文件下面

clean package -U deploy -Dmaven.test.skip=true
# BUILD SUCCESS即为上传成功

4. 使用命令进行镜像版本发布

第一步:release:prepare:打包前的准备工作

  1. 输入对应的release需要打包的版本嘻嘻,如果不输入有默认的内容
  2. 将需要记录和准备的内容缓存到pom.xml目录下的release.properties文件中
  3. 在本地和远程仓库的git中打上对应版本的tag

    先确认本地代码全部提交了,否则会失败。执行prepare的时候会执行单元测试,失败也会回滚
# 执行发布准备命令
release:prepare
# 确认maven仓库的release版本号,回车为默认值
What is the release version for "mavenmodule"? (com.wlh:mavenmodule) 1.3: :
# 确认scm中的仓库的tag标签版本号,回车为默认值
What is SCM release tag or label for "mavenmodule"? (com.wlh:mavenmodule) v1.3: :
# 确认下一个开发版本的快照版本编号
What is the new development version for "mavenmodule"? (com.wlh:mavenmodule) 1.4-SNAPSHOT: :

后悔药:release:rollback

在顺北阶段发生错误的时候,就需要这个命令了,这个命令执行会去做以下这些事情

  1. 删除线上git库tag但是本地没有被删除,需要手动使用git -d xxx 进行删除,否则下次准备会失败
  2. 删除之前缓存在pom.xml统一目录下的配置
# 执行回滚命令
release:rollback
# 会降本的的分支进行删除,但是服务器上的分支不会删除,需要手动通过工具进行删除命令
release:prepare

最后一步:release:perform

如果确认无误了以后,就可以执行perform命令了

  1. 验证代码合法性
  2. 将你之前的1.0-SNAPSHOT改为1.1-SNAPSHOT
  3. 将1.0版本deploy至scm配置的nexus release库中
  4. 将代码source。jar版本 javacode。jar打包上传至nexus库
# 将源代码上传到服务器了
release:perform

题外话

去spring的框架上面看了下,springboot还是用maven进行管理依赖,而spring框架就是用gradle。

后来看了下dubbo也是用maven插件的方式进行版本发布,所以看来路子是没有错误的,哈哈哈。


华为云和Sonatype联合发布的中国官方Maven中央仓库

【maven实战】42-使用maven-release-plugin自动化版本发布

插件安装相关文章

maven最佳实践:版本管理

官方插件地址:Maven Release Plugin

Nexus入门指南

【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理的更多相关文章

  1. 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区

    突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)

  2. 端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区

    端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区 端口映射工具 redir/socat/xinetd    10人收藏此文章, 我要收藏 发表于3天前(2013-08 ...

  3. 干货云集 WOT 2017全球架构与运维技术峰会揭密技术难点

    WOT,World Of Tech专注互联网IT技术领域,是一场不容错过的技术盛会!WOT 2017全球架构与运维技术峰会三大章节,15大技术专场,60+国内外一线互联网精英大咖站台,打造兼顾技术视野 ...

  4. CNUTCon2017全球运维技术大会(持续更新中) - 斯达克学院 - 实战驱动的 IT 教育平台 - Powered By EduSoho

    CNUTCon2017全球运维技术大会(持续更新中) - 斯达克学院 - 实战驱动的 IT 教育平台 - Powered By EduSoho   https://new.stuq.org/cours ...

  5. 亲爱的,我是一条Linux运维技术学习路径呀。

    根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...

  6. 技术沙龙|京东云DevOps自动化运维技术实践

    自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...

  7. 沙龙报名 | 京东云DevOps——自动化运维技术实践

    随着互联网技术的发展,越来越多企业开始认识DevOps重要性,在企业内部推进实施DevOps,期望获得更好的软件质量,缩短软件开发生命周期,提高服务稳定性.但在DevOps 的实施与落地的过程中,或多 ...

  8. 【运维技术】JENKINS管道部署容器化初探

    目标服务器安装docker参考官方文档 https://docs.docker.com/install/linux/docker-ce/centos/ (可选)在目标服务器上安装docker私服 ht ...

  9. Python自动化运维技术与最佳实现

    第一章 系统基础信息模块详解 系统基础信息采集模块最为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的质量以及用户的 ...

随机推荐

  1. linux下配置Java_web环境

    I安装JDK 1下载jdk*.bin/jdk*.rpm文件 2把安装包copy到安装目录 cp jdk*.bin /www/java 3安装JDK 如果是.bin文件,直接在复制的当前目录执行即可 . ...

  2. ububtu下安装配置搜狗输入法

    安装搜狗输入法 for linux参考教程: http://blog.csdn.net/u013894834/article/details/60357071 安装后会遇到无法切换英文的问题,可以参考 ...

  3. 2.5BatchNormalzation

    BatchNormalzation是一种解决深度神经网络层数太多,而没有办法有效前向传递的问题,因为每层的输出值都会有不同的均值和方差,所以输出数据的分布也不一样. 如果对于输入的X*W本身得到的值通 ...

  4. 1.2Tensorflow的Session操作

    tf的session #-*- coding: utf-8 -*- # @Time : 2017/12/21 14:56 # @Author : Z # @Email : S # @File : 1. ...

  5. 1.1Tensorflow训练线性回归模型入门程序

    tensorflow #-*- coding: utf-8 -*- # @Time : 2017/12/19 14:36 # @Author : Z # @Email : S # @File : 1. ...

  6. wordpress设置固定链接无效的解决办法

    声明:本人用的是Ubuntu 10.04 LAMP服务 以下内容是针对在Apache服务器下Wordpress修改固定链接出错无效的解决办法: 如果改了固定链接以后出问题,请查看Wordpress根目 ...

  7. Django实现电影论坛

    主要实现功能: 注册,登陆,发帖,评论帖子,xadmin实现后台提供帖子管理,板块管理等等 首页(搜索,筛选) 发布帖子 帖子详情页(显示帖子具体内容,提供评论) 个人信息页面(显示个人信息,修改个人 ...

  8. python3.5 安装python3-tk

    https://blog.csdn.net/qq_18293213/article/details/74483516 在python3.5下安装好matplotlib后,准备显示一张图片测试一下,但是 ...

  9. gulp自动化部署:gulp发布express项目(二)

    原文:https://my.oschina.net/songzhu/blog/610337 一.服务器准备 服务器ip地址为:172.16.70.174 1.安装 Node.js 参考:http:// ...

  10. zabbix 报错汇总

    打开zabbix web界面点击profile出现以下报错信息: scandir() has been disabled for security reasons [profile.php:198 → ...