【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理
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:打包前的准备工作
- 输入对应的release需要打包的版本嘻嘻,如果不输入有默认的内容
- 将需要记录和准备的内容缓存到pom.xml目录下的release.properties文件中
- 在本地和远程仓库的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
在顺北阶段发生错误的时候,就需要这个命令了,这个命令执行会去做以下这些事情
- 删除线上git库tag但是本地没有被删除,需要手动使用git -d xxx 进行删除,否则下次准备会失败
- 删除之前缓存在pom.xml统一目录下的配置
# 执行回滚命令
release:rollback
# 会降本的的分支进行删除,但是服务器上的分支不会删除,需要手动通过工具进行删除命令
release:prepare
最后一步:release:perform
如果确认无误了以后,就可以执行perform命令了
- 验证代码合法性
- 将你之前的1.0-SNAPSHOT改为1.1-SNAPSHOT
- 将1.0版本deploy至scm配置的nexus release库中
- 将代码source。jar版本 javacode。jar打包上传至nexus库
# 将源代码上传到服务器了
release:perform
题外话
去spring的框架上面看了下,springboot还是用maven进行管理依赖,而spring框架就是用gradle。
后来看了下dubbo也是用maven插件的方式进行版本发布,所以看来路子是没有错误的,哈哈哈。
华为云和Sonatype联合发布的中国官方Maven中央仓库
【maven实战】42-使用maven-release-plugin自动化版本发布
【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理的更多相关文章
- 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区
突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
- 端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区
端口映射工具 redir/socat/xinetd - 运维技术 - 开源中国社区 端口映射工具 redir/socat/xinetd 10人收藏此文章, 我要收藏 发表于3天前(2013-08 ...
- 干货云集 WOT 2017全球架构与运维技术峰会揭密技术难点
WOT,World Of Tech专注互联网IT技术领域,是一场不容错过的技术盛会!WOT 2017全球架构与运维技术峰会三大章节,15大技术专场,60+国内外一线互联网精英大咖站台,打造兼顾技术视野 ...
- CNUTCon2017全球运维技术大会(持续更新中) - 斯达克学院 - 实战驱动的 IT 教育平台 - Powered By EduSoho
CNUTCon2017全球运维技术大会(持续更新中) - 斯达克学院 - 实战驱动的 IT 教育平台 - Powered By EduSoho https://new.stuq.org/cours ...
- 亲爱的,我是一条Linux运维技术学习路径呀。
根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...
- 技术沙龙|京东云DevOps自动化运维技术实践
自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...
- 沙龙报名 | 京东云DevOps——自动化运维技术实践
随着互联网技术的发展,越来越多企业开始认识DevOps重要性,在企业内部推进实施DevOps,期望获得更好的软件质量,缩短软件开发生命周期,提高服务稳定性.但在DevOps 的实施与落地的过程中,或多 ...
- 【运维技术】JENKINS管道部署容器化初探
目标服务器安装docker参考官方文档 https://docs.docker.com/install/linux/docker-ce/centos/ (可选)在目标服务器上安装docker私服 ht ...
- Python自动化运维技术与最佳实现
第一章 系统基础信息模块详解 系统基础信息采集模块最为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的质量以及用户的 ...
随机推荐
- OpenCV Save CvRect to File 保存CvRect变量到文件
在OpenCv中,我们有时候需要查看CvRect变量的值,我们可以通过将其保存到文件来查看,保存的代码如下: void writeCvRectToFile(CvRect &rect, cons ...
- JAVAORM框架之Mybatis (Ibatis) 详解
目录 Mybatis基础概念 Mybatis开放方式演进 Mybatis框架核心要点 关联查询 延迟加载(懒加载) 动态SQL Mybatis缓存 Mybatis逆向工程 PageHelper分页插件 ...
- spring面试大全
一.spring如何实现资源管理? 使用 applicationContext.getResource(“classpath:文件名”):在src根目录下,在类路径下 applicationConte ...
- 利用反射生成JDK动态代理
利用反射生成JDK动态代理 在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成JDK动态代理类和动态代理 ...
- 排序的本质是什么 冒泡排序 bubble sort
import random def getRandomNums(min=4, max=20): n = random.randint(min, max) arr = [random.randint(1 ...
- php:// — 访问各个输入/输出流(I/O streams)
PHP: php:// - Manual http://www.php.net/manual/zh/wrappers.php.php php:// php:// — 访问各个输入/输出流(I/O st ...
- 启动了SSH服务后,一定要关闭Telnet服务
https://baike.baidu.com/item/ssh/10407 https://baike.baidu.com/item/Telnet/810597
- docker and ssh issues
docker run -i -t qcdatainc/centos-jdkyum update yum install openssh-server ssh -vvv -p 222 jenkins@1 ...
- Jmeter(二十一)_脚本参数化与内存溢出的解决方案
这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为 ...
- Bone Collector--hdu2602(01背包)
Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collec ...